新增PHP经典笔记

时间:2022-04-08 06:13:42



【设置编码】

header("Content-type:
text/html; charset=utf-8");

1. parse_url — 解析 URL,返回其组成部分

$ua=parse_url("http://username:password@hostname/path?arg=value#anchor");

Array ( [scheme] => http [host] =>
hostname [user] => username [pass] => password [path] => /path [query]
=> arg=value [fragment] => anchor )

2. PHP输出CSVEXCEL两种简单的方法:

header("Content-type:application/vnd.ms-excel");

header("Content-Disposition:filename=php100.xls");

3.array_count_values() 函数用于统计数组中所有值出现的次数。

4.reset() 函数把数组的内部指针指向第一个元素,并返回这个元素的值。若失败,则返回 FALSE。

4.is_writable() 检查文件是否可写,用来判断文件权限,同类函数还有is_readable() 检查文件是否可读,返回布尔值

5.PHP中三个调用系统命令的函数system(), exec(), passthru() 比较:

system() 输出并返回最后一行shell结果。

    exec() 不输出结果,返回最后一行shell结果

    passthru() 只调用命令,把运行结果原样地输出

    new com()  系统预定义com类,根据需要任意选择内置方法

相同点:都可以获得命令执行的状态码

6.函数的使用说明:

①常规函数

bool copy ( string source, string dest
)

②带有mixed , mixed表示可以传任何类型的数据

bool chown ( string filename, mixed
user )

③带有&参数的函数,表示引用赋值,这个参数不能传值,只能传一个变量,然后函数将变量的值改变,我们在使用这个变量时,值也是变化的

bool arsort ( array &array [, int
sort_flags] )

④默认函数带有[]的函数, 表示这个参数是可选的,如果你传值了就使用你传的值,如果没有传值则使用默认值。直接在声明函数时,就为参数给初值。可选值和必须值,必须从后向前设置。

bool arsort ( array &array [, int
sort_flags] )

⑤带有...的参数函数, ...表示可以传任意多个参数

int array_unshift ( array &array,
mixed var [, mixed ...] )

⑥回调函数带有callback,  就是调用这个函数时需要我们传一个函数进来(函数名,函数名字串)

array array_filter ( array input [,
callback callback] )

7. 预定义数组:自动全局变量---超全局数组

$_GET       //经由URL请求提交至脚本的变量

$_POST      //经由HTTP
POST 方法提交到脚本的变量

$_REQUEST   //经由GET,
POST和COOKIE机制提交到脚本的变量,因此该数组并不值得信任,不去使用(尽量)

$_FILES     //经由HTTP
POST  文件上传而提交至脚本,文件处理一章,文件上传

$_COOKIE    //

$_SESSION   //

$_ENV       //执行环境提交至脚本的变量

$_SERVER    //变量由WEB服务器设定的,或直接和当前脚本的执行环境相关联

$GLOBALS    //只要是当前脚本有效的变量都在这里,数组键名为全局变量的名称

8.pow(x,y) 函数返回 x 的 y 次方。echo pow(6,2); //36

9.路径分隔符号DIRECTORY_SEPARATOR  为不同平台,在Windows \ Linux /

10.PHP中遍历stdclass object:$array = get_object_vars($test);  转换为数组后遍历

《多表查询》

$table="qg_ws_zu
a,qg_ws_ac b";

$field="a.id,a.total_money,a.hongbao_num";

$order="a.order_sort
desc,b.last_create_time_gid desc";

$map['a.is_del']=0;

$limit=(($_GET['page']-1)*$_GET['limit']).','.$_GET['limit'];

$list
= M('')->table($table)->field($field)->where($map)->order($order)->limit($limit)->select();

$sql_res
= M('')->getLastSql();


1.CSS控制页面文字不能复制:body{-webkit-user-select:none;}

1.PHP中遍历stdclass object:$array
= get_object_vars($test);  转换为数组后遍历

2. CSS控制页面文字不能复制:body{-webkit-user-select:none;}

2.【php过滤汉字和非汉字】<?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获取图片尺寸大小< ?php $arr=getimagesize("1.jpg"); echo
$arr[0]."< br/ >"; //the width echo $arr[1]; //the heigth? >

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.$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中读取https请求协议的网页内容,有时候file_get_contents()会出错,比如这样的:$userinfo ='https://...';可以使用如下方法:(见下条内容)

20.PHP正则匹配一对中括号内的内容为空:$ss="sdfghjfsd[url]88888888888888[/url]"; $ss =
preg_replace('/\[url\S*\[\/url\]/', '', $ss); echo $ss;

21.MySQL配置日志文件:在MySQL安装目录下my.ini里面找到[mysqld],给里面加入log="E:/mysql_log.txt",然后重启Apache,重启MySQL服务即可。

22.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);