判断{函数/类/方法/属性}是否存在
//(1)判断类是否存在
bool class_exists(string $class_name [, bool $autoload = true])
//(2)判断系统函数或自己写的函数是否存在
bool function_exists(string $function_name)
//(3)判断类里面的某个方法是否已经定义
bool method_exists(mixed $object, string $method_name)
//(4)判断类里面的某个属性是否已经定义
bool property_exists(mixed $class, string $property)
数组操作相关函数
一.排序类:【1.无返回值,传值引用,就直接对原数组进行了修改】
sort() 函数用于对数组单元从低到高进行排序。
rsort() 函数用于对数组单元从高到低进行排序。
ksort() 函数用于对键名从低到高进行排序并保持索引关系。
krsort() 函数用于对键名从高到低进行排序并保持索引关系。
asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
natsort() 函数用于对数组单元从低到高进行区分大小写的排序并保持索引关系。
natcasesort() 函数用于对数组单元从低到高进行不区分大小写的排序并保持索引关系。大写在前,小写在后。
usort($arr,”strnatcmp”) 回调类的排序,把$arr数组里的每一个元素丢到strnatcmp()[非自然数排序]处理【返回新的排序数组】
二.键值操作类:【都有返回值,没有在原来参数上修改】
1.array_values($arr);//获取$arr中的值重排,去掉下标【返回值新索引数组】
2.array_keys($arr[,”str”,true])//获取$arr中所有字符是”str”的下标,形成索引数组,true表示区分大小写【返回新索引数组】
3.array_search(“is”,$arr[,true]) //返回值”is”在$arr中的key,找不到返回fales,true表示严格按照类型(8,”8”)【返回第一个匹配值】
4.in_array(“str”,$arr);//判断”str”在$arr中是否存在,【返回BOOL】
5.is_array($arr);//判断是否是数组【返回BOOL】
6.array_key_exists($key,$arr); //查询$arr中是否有$key,【返回BOOL】
7.array_flip($arr);// 交换键值,如有重复,后来居上,【返回新数组】
8.array_reverse($arr,[true|false]);//数组顺序反转,param2是否保留原来键值【返回新关联/索引数组】
9.array_column(array(),’name’[,name_two]) — 返回数组中指定的name列[可选参数,如果有返回name=>name_two的形式]【返回一维数组】
三.元素个数和唯一性
1.array_unique($arr);//去掉$arr中的重复值,重复的保留第一个值,【返回数组,键值保留】
2.array_count_values($arr)//统计数组值出现的次数,【返回数组,KEY为原来数组的值,VALUE为统计的次数】
3.count($arr[,1])/sizeof();//统计$arr的元素个数,参数”1”表示统计多维数组开启,默认0为关闭【返回统计个数】
四.回调函数
1.array_filter($arr,”function”);//把$arr放到函数function中处理,【返回判断为TRUE的数据组成新数组,键值保留】
2.array_walk($arr,”function”[,”data”]);//把$arr放到function(&$v,$k,$data)中处理【返回值为bool】
3.array_map(“function”,$arr,$arr2,$arr3,….);//把所有数组返回到回调函数统一处理,【返回数组】
4.array_reduce($arr,myfunction[,initial]):把一维数组$arr中的值依次传到自定义函数myfunction($v1,$v2)的v2上,v1为累加值类似 于( .= ),[如果有initial,先把其当v1传进去]【返回字符串】
字符串处理函数
substr(字符串,开始地方,[返回字符串的长度]);// 截取字符串的一部分,第一个字符位置为0
substr_replace($str,"aaa",start[,length]);在$str上操作,从第start个开始,把【后边】的字符[全/或length个]替换
sub_count($str,"is"[,5,10]);//[ 从第五个字符开始,搜索长度为10,]搜索is在$str中出现的次数,【返回次数】
strstr($email,"@"[,true]) //从头开始搜索,无true返回@后边字符,有true返回@前边的字符[strrchr对比]
strrchr($email,"@")//从结尾开始搜索,返回@后的所有字符
str_replace(被替换词,替换词,被搜索字符串,[统计替换次数$num]) 前两个参数也可为数组,两个数组元素个数相同
str_repeat($str,num);//重复$str字符串 num次,
strpos($str,"@");//返回@【第一次出现的位置】
strrpos($str,"@");//返回@【最后一次出现的位置】
str_word_count($str[,0/1/2]);
//返回$str中单词的数量[0指返回次数,默认值/1指以数组形式返回单词值/2指返回关联数组,k为单词首字母下标,v单词值]
strcmp($str1,$str2);//按ASCII码比较 str1>str2 则返回1 相等返回0 <返回-1 strcasecmp不区分大小写的比较
strnatcmp($str1,$str2);//按自然数的排序比较,上边的比较10<2;本函数比较10>2,按自然数大小来的
strcasecmp($str1,$str2);strnatcasecmp//以上4个函数,$str1,$str2比较,【返回值:相等0,小于-1,大于1】
strlen($string);成功则返回字符串 $string 的长度
mb_strlen($string,'utf8');//获取字符串$string长度,多字节的字符被计为 1。
explode(",",$str[,$limit_num]);//把$str按照","分割成一个数组[可选参数为返回数组的元素个数]【返回一个分割后的数组】
impolde("+",$arr);//把$arr里的元素按照“+”链接成一个字符串
文本处理函数
strtoupper($str)//字母全转为大写【返回全大写字符串】
strtolower()//字母全转为小写【返回全小写字符串】
str_pad($str,length,[---,STR_PAD_BOTH]); //在$str的两边填补“---“,注意,length若小于$str长度,不填补
trim($str[,"a",STR_PAD_BOTH])// 去除两边/左/右的空白或"a",默认是空白,或自定义字符
ucfirst()//整个$str首字母大写
ucword()//$str每个单词首字母大写
iconv( from_charset ; to_charset,$str); //转化字符格式 $file_name = iconv("gb2312","utf-8",$file_name);
HTML类处理相关函数
htmlspecialchars($str)//函数把【预定义字符】转换为【 HTML 实体】,&转换成&
htmlspecialchars_decode($str);//把【HTML实体】转换成【预定义字符】,&转换成&
htmlentities($str); //函数把【预定义字符】转换为【 HTML 实体】,&转换成&,有乱码问题,注意第二第三个参数,若编码不正确,会在实体化时把信息丢失
html_entity_decode($str) //把【HTML实体】转换成【预定义字符】,&转换成&, > 转成 <
addslashes($html); //添加转义字符“/”
stripslashes($html); //删除转义字符“/”
strip_tags($html); //去除HTML标签
nl2br($str) //在$str中的换行/n前插入<br>,因为\n在源码可以换行,但是在浏览器窗口不行,有这个就可以
正则函数
preg_match($pattern,$subject,$arr);//按正则$pattern处理$subject,第一次匹配结果返回到数组中【函数的返回值为匹配次数】
preg_match_all($pattern,$subject,$arr)//按正则$pattern处理$subject,全部匹配结果返回到数组中【函数的返回值为匹配次数】
preg_replace()//正则替换字符串
preg_split($pattern,$str);//通过一个正则表达式分隔字符串【返回值为数组】
时间相关函数
date_default_timezone_set()('PRC');//设置时区为中国
time();//默认获取当前时间,【返回时间戳格式】
micritime();//获取当前时间【返回毫秒的时间戳】
mktime(H,i,s,m,d,Y)//指定时间转为时间戳,参数为空的时候作用与time()相同【返回时间戳格式】
strtotime('2015-10-10 10:10:10');//指定时间转换为时间戳【返回时间戳】
date("Y-m-d H:i:s",time());//转换时间戳为日期格式【返回目标格式的字符串】
date_diff()//两个时间之差
文件处理函数
file_exists($file)//文件是否存在,【true/false】
filesize($file) //返回文件的大小【大小字节/出错false】
is_readable($file)//是否可读【返回bool】
is_writeable($file)//是否可写【返回bool】
is_executable($file)//是否可执行【返回bool】
filectime($file)//文件创建时间【时间戳】
filemtime($file)//文件修改时间【时间戳】
fileatime($file)//文件访问时间【时间戳】
stat($file)//返回文件的大部分信息【文件信息数组】
fopen($fileName,"模式字符r,w,x")//打开一个文件,【返回值为资源型$handle】
fclose($handle) //关闭打开的文件【返回BOOL】
fwrite($handle,"$data")//把$data写入$handle文件,先清空后写入,【成功返回$handle,失败返回false】
file_put_contents($filename,$data);//它是上边三个合起来的效果
file_get_contents($filename)//读取文件里的信息【返回字符串】
flock($handle,$operation) //用$operation锁定文件$handle,$operation取值有4种:
LOCK_SH(PHP 4.0.1 以前的版本设置为 1):取得共享锁定(读取的程序)
LOCK_EX(PHP 4.0.1 以前的版本中设置为 2):取得独占锁定(写入的程序)
LOCK_UN(PHP 4.0.1 以前的版本中设置为 3):释放锁定(无论共享或独占)
LOCK_NB(PHP 4.0.1 以前的版本中设置为 4):不让 flock() 在锁定时堵塞
copy($file1,$file2);//文件的复制。赋值$file1,形成$file2【返回BOOL】
unlink($file);//删除$file文件【返回BOOL】
rename($file1,$file_new_name);//重命名【返回BOOL】
目录处理函数
basename($file) //返回文件名,index.php
dirname($file) //返回文件的路径,c://php/
pathinfo($file) //返回该文件路径的所有信息 ["dirname"目录名] ["basename"文件名] ["extension"文件后缀]
filesize($file) 统计大小
mkdir("dir_name");//建立一个空的目录
copy($org,$to) //复制
rmdir("dir_name");//删除一个空的目录
unlink("file_name")//删除一个文件,当删除目录是,必须删除该目录下的文件
opendir($file) //打开一个目录,参数为目录名或目录路径【返回资源型的目录句柄$dir_handle,无权限返false】
readdir($dir_handle) //读取目录,参数为目录句柄,while,返回当前指向对象的名字,目录指针后移【返回filename,没有是返false】
is_dir($dir) //判断是否是目录
closedir($dir_handle) //关闭打开的目录
rewinddir($dir_handle) //倒回目录句柄,将目录指针重置到目录开始
数学相关函数
ceil()//向上取整
floor()//向下取整
round();//四舍五入
abs();//取绝对值
rand(10,100)//随机取值
mt_rand(10,100)//随机取值,算法不同,速度更快
fmod()//返回除法浮点形余数
max(int/$arr)//取最大值
min(int/$arr)//取最小值
pow(1024,2)//返回1021的2次幂
URL编码
urlencode($url)//对该URL进行编码;原因:防止乱码,解决空格等字符不能传递问题,form也是此编码格式传递
urldecode($url)//对该URL进行解码
parse_url($url)//返回该URL的所有信息,[scheme协议][host域名] [path路径][query参数] 【返回含信息的数组】
pathinfo($url)//["dirname"目录名] ["basename"文件名] ["extension"文件后缀]【返回含信息的数组,下标不同】
get_meta_tags($url)//获取该页面的所有META标签【返回关联数组】
JSON相关函数
json_encode($data);//对变量进行JSON编码
json_decode($data,true)//对JSON格式的字符串进行解码
json_last_error();//返回最后一次反生的错误
序列化
serialize()//返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。
unserialize()//对单一的已序列化的变量进行操作,将其转换回 PHP 的值。