PHP笔记随笔
1.CSS控制页面文字不能复制:
body{-webkit-user-select:none;}
2.【php过滤汉字和非汉字】
$sc="aaad....##--__i汉字过滤"; //iconv("UTF-8","GB2312",$sc);utf-8转码
echo $temp=eregi_replace("[^\x80-\xff]","",$sc); //保留汉字(过滤非汉字)
echo $temp=preg_replace("/[\\x80-\\xff]/","",$sc); //保留非汉字(过滤汉字),注意两条反斜线
3.查询数据库中某个字段中用逗号分隔的字符串是否包含用户传递的某个值,这样写SQL语句:
SELECT * FROM tb WHERE field LIKE '%,1' OR field LIKE '1,%' OR field LIKE '%,1,%' OR field = '1'
查询结果见图。不知道是否有更简单的方法,目前这样可行。感谢学敏!
4.PHP上传文件获取后缀名:
$temp_arr = explode(".", $upload_file_name);
$file_ext = array_pop($temp_arr);
$file_ext = trim($file_ext);
$file_ext = strtolower($file_ext); //$file_ext 文件的后缀
5.PHP获取图片尺寸大小
$arr=getimagesize("1.jpg");
echo $arr[0]."< br/ >"; //the width
echo $arr[1]; //the height
6.PHP:Deprecated: Function set_magic_quotes_runtime() is deprecated解决方案:
php.ini 修改:error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
7.echo $thisUrl=dirname('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']).'/../../';exit;
8.PHP 匹配多对中括号中的内容,如下:
$string = "这是[3]def[25]我的[26]想说的话[wer3][as][41]正则匹配!";
preg_match_all('/\[([a-z0-9]+)\]/', $string, $matches);
print_r($matches);
9.$qqContent='(页面内容)';
$pat = '/<div class="allnum">.+?<\/div>/';
$str=str_replace("\r", "",$qqContent);
$str=str_replace("\n", "",$str);
preg_match_all($pat, $str, $res);
提取数字用:
preg_match_all('/\d+/', $res[0][0], $nums);
print_r($nums[0][0]); //得到结果。
10.PHP获取当前页面的所有超链接:
$str = '(包含超链接的字符串)';
$pat = '/<a(.*?)href="(.*?)"(.*?)>(.*?)<\/a>/i';
preg_match_all($pat, $str, $m);
print_r($m); //其中$m[2]为超链接内容,$m[4]为超链接的标题。
11.Linux 解压
解压tar.bz2方法:tar -vxjf filename.tar.bz2
解压tar.gz 方法: tar zxvf filename.tar.gz
解压zip方法:unzip filename.zip
12.Linux 压缩当前目录下的文件夹:
tar -zcvf common.tar.gz common,此命令:压缩当前目录下的common文件夹
13.匹配图片路径:(如果源代码中有空格,先去掉“\r”和"\n",然后再匹配。)
$str=str_replace("\r", "",$content);
$str=str_replace("\n", "",$str);
$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/";
preg_match_all($pattern,$str,$match);
print_r($match);
14.PHP中在远程路径(FTP)进行操作,比如创建文件夹:
$remote="ftp://username:password@www.baidu.com/test/txt";mkdir($remote, 0777, true );
意思即为:在baidu网站根目录创建目录 /test/txt...,其中username和password分别为当前网站的FTP登录账号和密码。
15.判断一个网络文件是否存在(兼容所有可能性):
function checkRemoteFileExists($file) {return (bool)fopen($file, 'rb');}
16.PHP判断一个远程文件是否存在:
$url = "http://url.cn/ERUKm9 ";
$fileExists = @file_get_contents($url, null, null, -1, 1) ? true : false;
echo $fileExists; //返回1,就说明文件存在。
17.PHP匹配图片路径:
preg_match_all("/<img.*src\s*=\s*[\"|\']?\s*([^>\"\'\s]*)/i",str_ireplace("\\","",$content,$arrs));
$arrs[1][0]就是图片的路径!
18.PHP中读取https请求协议的网页内容,有时候file_get_contents()会出错,比如这样的:$userinfo ='https://...';可以使用如下方法:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$userinfo);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1) ;
$string= curl_exec($ch); //file_put_contents('string.txt', $string);
19.PHP正则匹配一对中括号内的内容为空:
$ss="sdfghjfsd[url]88888888888888[/url]";
$ss = preg_replace('/\[url\S*\[\/url\]/', '', $ss);
echo $ss;
20.MySQL配置日志文件:
在MySQL安装目录下my.ini里面找到[mysqld],给里面加入log="E:/mysql_log.txt",然后重启Apache,重启MySQL服务即可。
21.MySQL获取日期的一些函数:
mysql获取上个月的当前时间:select date_sub(now(),interval 1 month) ;
获取上个月的第一天:select date_sub(date_sub(date_format(now(),'%y-%m-%d 08:00:00'),interval extract( day from now())-1 day),interval 1 month);