php中常用函数总结

2018-08-01

PHP常用函数总结:


数组函数:

1.排序类:【1.无返回值,传值引用,就直接对原数组进行了修改】

按V:sort,rsort,asort,arsort

按K:ksort,krsort

按字母:natsort(); //区分大小写的排序
natcasesort(); //不区分大小写的排序,

当遇到字符完全一样,按照数字排 eg: FILE1,FILE2, 这两个字符相同,再按照数字1<2排,所以结果 FILE1,FILE2

2.键值操作类:【都有返回值,没有在原来参数上修改】

代码展示片段

1
2
3
4
5
6
7
8
9
array_values($arr);//获取$arr中的值重排,去掉下标【返回值新索引数组】
array_keys($arr[,"str",true]) //获取$arr中所有字符是"str"的下标,形成索引数组,true表示区分大小写【返回新索引数组】
array_search("is",$arr[,true])//返回值"is"在$arr中的key,找不到返回fales,true表示严格按照类型(8,"8")【返回第一个匹配值】
in_array("str",$arr); //判断"str"在$arr中是否存在,【返回BOOL】
is_array($arr); //判断是否是数组【返回BOOL】
array_key_exists($key,$arr); //查询$arr中是否有$key,【返回BOOL】
array_flip($arr); // 交换键值,如有重复,后来居上,【返回新数组】
array_reverse($arr,[true|false]); //数组顺序反转,param2是否保留原来键值【返回新关联/索引数组】
array_column(array(),'name'[,name_two]) — 返回数组中指定的name列[可选参数,如果有返回name=>name_two的形式]【返回一维数组】

3.元素个数和唯一性【都有返回值,没有在原来参数上修改】

代码展示片段

1
2
3
array_unique($arr);//去掉$arr中的重复值,重复的保留第一个值,【返回数组,键值保留】
array_count_values($arr)//统计数组值出现的次数,【返回数组,KEY为原来数组的值,VALUE为计的数】
count($arr[,1])/sizeof();//统计$arr的元素个数,参数"1"表示统计多维数组开启,默认0为关闭【返回统计个数】

4.数组的数据结构【无返回值,传值引用,就直接对原数组进行了修改】

代码展示片段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    array_shift($arr)//从开头,删除数组第一个元素
array_unshift($arr,"one","two")//从开头,添加元素
array_pop($arr)//从结尾,删除数组最后一个元素
array_push($arr,"aaa");//从结尾,添加元素
current($arr)//返回数组中的当前单元 比如是关联数组是不知道下标,可以输出当前数组的办法解决
key($arr)//返回当前指针指向元素的键值
next($arr)//当前指针下移
pre($arr)//当前指针上移
end($arr)//指针指到最后
reset($arr)//指针回归到开头
unset($arr)//销毁此数组
```

5、其他函数

代码展示片段

    array_rand($arr,2);//随机返回两个$arr数组当中的key
    shuffle($arr)//随机的重组$arr,顺序变乱【返回新数组,保留键值】
    array_sum($arr);//返回$arr的value的和【返回一个值】
    range(0,10,2,)//快速创建0,10的数组,间隔为2,所以有5个值【返回新索引数组】
    http_build_query($arr)//把关联数组转换成一个经过urlencode加密的URL eg:array["a"=>2];=>URL:a=2&
1
2
3
4
5
6
7
8
9
10
                

* * *

字符串函数
=====

1、返回值为boll类型函数

代码展示片段
isset($a)//当$a=NULL 或不存在,返回false,反之为true empty($a)//当$a=NULL/''/array()/0/'0'/不存在 时 返回true,反之为false
1
2
3
4

2、返回值为自字符串函数

代码展示片段
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次
1
2
3
4
5
                

3、返回值为数字类串函数

代码展示片段
1.strpos($str,"@");//返回@【第一次出现的位置】
2.strrpos($str,"@");//返回@【最后一次出现的位置】
3.str_word_count($str[,0/1/2]);//返回$str中单词的数量[0指返回次数,默认值/1指以数组形式返回单词值/2指返回关联数组,k为单词首字母下标,v单词值]
4.strcmp($str1,$str2);//按ASCII码比较 str1>str2 则返回1 相等返回0 <返回-1  strcasecmp不区分大小写的比较
5.strnatcmp($str1,$str2);//按自然数的排序比较,上边的比较10<2;本函数比较10>2,按自然数大小来的strcasecmp($str1,$str2);strnatcasecmp//以上4个函数,$str1,$str2比较,【返回值:相等0,小于-1,大于1】
6. number_format(10000[,2]);        //==》10,000.00        把第一个参数格式化,保留2位小数
7. strlen($string);成功则返回字符串 $string 的长度
8. mb_strlen($string,'utf8');//获取字符串$string长度,多字节的字符被计为 1
1
2
3
4
5
6
7

* * *

文本处理类
=====

代码展示片段
strtoupper($str)//字母全转为大写【返回全大写字符串】
strtolower()//字母全转为小写【返回全小写字符串】
strtotime('2015-10-10 10:10:10');//指定时间转换为时间戳【返回时间戳】
str_pad($str,length,[---,STR_PAD_BOTH]); //在$str的两边填补“---“,注意,length若小于$str长度,不填补
trim($str[,"a",STR_PAD_BOTH])// 去除两边/左/右的空白或"a",默认是空白,或自定义字符
floatval("123.45aa")//=》获取变量的浮点值【123.45】
ucfirst()//整个$str首字母大写
ucword()//$str每个单词首字母大写
1
2
3
4
5
6
7

* * *

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前插入  ,因为\n在源码可以行,但是在浏览器窗口不行,有这个就可以
iconv( from_charset ; to_charset,$str);        //转化字符格式
$file_name = iconv("gb2312","utf-8",$file_name);

`