1. 首页
  2. PHP百科

PHP常用函数

PHP常用函数,包括PHP数组函数、字符串函数、正则函数、文件处理函数、SQL函数、数学函数、时间函数、URL处理函数、JSON及其他函数。

常用函数:

echo()【语言结构】
print()//【语言结构】【有返回值】,若传输失败导致没有输出,它返回false
var_dump()
var_export()【有返回值,翻译一个合法的PHP代码】
printf()//类似与C语言的形式 printf(“my name is %s, age %d”, $name, $age);,打印出来
sprintf()//跟printf相似,但不打印,而是返回格式化后的文字,其他的与printf一样

数组函数:

排序类:

按V:sort,rsort,asort,arsort,
按K:ksort,krsort
按字母:
natsort();//区分大小写的排序
natcasesort();//不区分大小写的排序,

键值操作类

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传进去]【返回字符串】

拆分,合并,分解,接合数组

1.array_slice($arr,1[,2]);//在$arr中,从第二个开始取[,返回俩个值]【返回新数组(对原数组无影响),键值保留】
2.array_splice($arr,1[,2,”aaa”,”bb”]);//删除或替换,从$arr第二个开始取,删除或替换2个值【返回值为新数组,拆掉原数组】
3.array_combine($arr1,$arr2);//数组$arr1为KEY,$arr2为VALUES结合形成新索引数组【返回索引数组】
4.array_merge($arr1,$arr2,$arr3…);//数组进行合并,保留键值,有重复,后来者居上【返回新数组】
array_merge发现有key值相同的,取后者;
$arr1+$arr2 发现有key值相同的,取前者,第二个重复的值丢弃
5.array_intersect($arr1,$arr2)//返回两个数组的交集,键值不变
6.array_diff($arr1,$arr2)//返回两数组的差集,返回的值为第一个数组的值,键值不变
7.array_chunk($arr,2)//分割数组,把$arr按照【2个为一组】均等分割【返回一个二维数组】

数组的数据结构

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

其他

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

字符串函数

返回bool

1.isset($a)//当$a=NULL 或不存在,返回false,反之为true
2.empty($a)//当$a=NULL/”/array()/0/’0’/不存在 时 返回true,反之为false
v返回值为自字符
1.substr(字符串,开始地方,[返回字符串的长度]);// 截取字符串的一部分,第一个字符位置为0
2.substr_replace($str,”aaa”,start[,length]);在$str上操作,从第start个开始,把【后边】的字符[全/或length个]替换
3.sub_count($str,”is”[,5,10]);//[ 从第五个字符开始,搜索长度为10,]搜索is在$str中出现的次数,【返回次数】
4.strstr($email,”@”[,true]) //从头开始搜索,无true返回@后边字符,有true返回@前边的字符[strrchr对比]
5.strrchr($email,”@”)//从结尾开始搜索,返回@后的所有字符
6.str_replace(被替换词,替换词,被搜索字符串,[统计替换次数$num]) 前两个参数也可为数组,两个数组元素个数相同
7.str_repeat($str,num);//重复$str字符串 num次,

返回值为数字类的

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

HTML类处理

1.htmlspecialchars($str)//函数把【预定义字符】转换为【 HTML 实体】,&转换成&amp
htmlspecialchars_decode($str);//把【HTML实体】转换成【预定义字符】,&amp转换成&
2.htmlentities($str);,函数把【预定义字符】转换为【 HTML 实体】,&转换成&amp,有乱码问题,注意第二第三个参数,若编码不正确,会在实体化时把信息丢失
html_entity_decode($str)////把【HTML实体】转换成【预定义字符】,&amp转换成&, &gt 转成 <
3.addslashes($html); //添加转义字符“/”
stripslashes($html); //删除转义字符“/”
4.strip_tags($html); //去除HTML标签
5.nl2br($str) //在$str中的换行/n前插入
,因为\n在源码可以换行,但是在浏览器窗口不行,有这个就可以
6.iconv( from_charset ; to_charset,$str); //转化字符格式 $file_name = iconv(“gb2312″,”utf-8”,$file_name);

正则函数

字符串的匹配查找

1.preg_match($pattern,$subject,$arr);//按正则$pattern处理$subject,第一次匹配结果返回到数组中【函数的返回值为匹配次数】
2.preg_match_all($pattern,$subject,$arr)//按正则$pattern处理$subject,全部匹配结果返回到数组中【函数的返回值为匹配次数】
3.strstr($str,”@”[,true]);
4.strpos,strrpos,substr($str,position)//联合使用

字符串的替换

1.preg_replace($pattenr,$replace,$str);//【强大的字符串处理函数】
在$str中,把$parrern匹配的值替换成$replcae【返回值为处理后的字符串】
2.str_replace($str,”aaa”,”bbb”);//把$str中的aaa换成bbb

字符串的分割和链接

1.preg_split($pattern,$str);通过一个正则表达式分隔字符串【返回值为数组】
举例:$keywords = preg_split(“/[\s,]+/”, “hypertext language, programming”);
结果:Array([0] => hypertext,[1] => language[2] => programming)
2.explode(“,”,$str[,$limit_num]);//把$str按照”,”分割成一个数组[可选参数为返回数组的元素个数]【返回一个分割后的数组】
3.impolde(“+”,$arr);//把$arr里的元素按照“+”链接成一个字符串

文件处理函数

[$file=c://php/index.php]

基础函数

1.file_exists($file)//文件是否存在,【true/false】
2.filesize($file) //返回文件的大小【大小字节/出错false】
3.is_readale($file)//是否可读【返回bool】
4.is_writeable($file)//是否可写【返回bool】
5.is_executable($file)//是否可执行【返回bool】
6.filectime($file)//文件创建时间【时间戳】
7.filemtime($file)//文件修改时间【时间戳】
8.fileatime($file)//文件访问时间【时间戳】
9.stat($file)//返回文件的大部分信息【文件信息数组】

目录的基本操作

1.basename($file)//返回文件名,index.php
2.dirname($file)//返回文件的路径,c://php/
3.pathinfo($file)//返回该文件路径的所有信息 [“dirname”目录名] [“basename”文件名] [“extension”文件后缀]

目录复制,删除,统计大小

依靠递归思想,对目录的的循环遍历,通过每一个文件的操作,得出结果
复制:copy($org,$to);mkdir()
删除:unlink($file);mrdir();
统计大小:filesize($file)

遍历目录

1.opendir($file)//打开一个目录,参数为目录名或目录路径【返回资源型的目录句柄$dir_handle,无权限返false】
2.readdir($dir_handle);//读取目录,参数为目录句柄,while,返回当前指向对象的名字,目录指针后移【返回filename,没有是返false】
3.closedir($dir_handle)//关闭打开的目录
4.rewinddir($dir_handle) //倒回目录句柄,将目录指针重置到目录开始

建立和删除目录

1.mkdir(“dir_name”);//建立一个空的目录
2.rmdir(“dir_name”);//删除一个空的目录
unlink(“file_name”)//删除一个文件,当删除目录是,必须删除该目录下的文件

文件的基本操作

1.fopen($fileName,”模式字符r,w,x”)//打开一个文件,【返回值为资源型$handle】
2.fclose($handle) //关闭打开的文件【返回BOOL】
3.fwrite($handle,”$data”)//把$data写入$handle文件,先清空后写入,【成功返回$handle,失败返回false】
4.file_put_contents($filename,$data);//它是上边三个合起来的效果
5.file_get_contents($filename)//读取文件里的信息【返回字符串】
6.flock($handle,$operation) //用$operation锁定文件$handle
7.copy($file1,$file2);//赋值$file1,形成$file2【返回BOOL】
8.unlink($file);//删除$file文件【返回BOOL】
9.rename($file1,$file_new_name);//重命名【返回BOOL】

文件的上传

1.is_upload_file($_FILES[‘file’][‘tmp_name’]) //检查是否合法
2.move_upload_file($_FILES[‘file’][‘tmp_name’],$url); //上传合法文件到$url
注意:html:form: method=”post” ;enctype=”multipart/form-data”

文件下载

header(‘content-disposition:attachment;filename=’.basename($filename));//表示附件方式下载
header(‘content-length:’.filesize($filename));
readfile($filename);

SQL函数

1.mysql_connect(‘localhost’,”root”,”root”);//连接诶数据库
2.mysql_select_db(‘data’,$conn);//选择数据库名
3.mysql_query(‘set names utf8’);//设置编码
4.mysql_affect_array();//试返回值为关联/索引数组
5.mysql_affect_row();//返回索引数组
6.mysql_affect_assoc();//返回关联数组
7.mysql_num_rows();//返回上一次select的查询语句条数
8.mysql_affected_rows();//返回上一次insert,update,delete的数据条数
9.mysql_close();//关闭数据库

数学函数

1.ceil()//向上取整
2.floor()//向下取整
3.round();//四舍五入
4.abs();//取绝对值
5.rand(10,100)//随机取值
6.mt_rand(10,100)//随机取值,算法不同,速度更快
7.fmod()//返回除法浮点形余数
8.max(int/$arr)//取最大值
9.min(int/$arr)//取最小值
10.pow(1024,2)//返回1021的2次幂

时间函数

1.date_default_timezone_set()(‘PRC’);//设置时区为中国
date.timezone =”PRC”;//PHP.INI
2.time();//默认获取当前时间,【返回时间戳格式】
3.micritime();//获取当前时间【返回毫秒的时间戳】
4.mktime(H,i,s,m,d,Y)//指定时间转为时间戳,参数为空的时候作用与time()相同【返回时间戳格式】
5.strtotime(‘2015-10-10 10:10:10’);//指定时间转换为时间戳【返回时间戳】
6.date(“Y-m-d H:i:s”,time());//转换时间戳为日期格式【返回目标格式的字符串】
7.getdate()//获取当前时间,【返回一个数组,参数年,月,日等都有】

URL处理函数

1.urlencode($url)//对该URL进行编码;原因:防止乱码,解决空格的呢个字符不能传递问题,form也是此编码格式传递
2.urldecode($url)//对该URL进行解码
3.parse_url($url)//返回该URL的所有信息,[scheme协议][host域名] [path路径][query参数] 【返回含信息的数组】
pathinfo($url)//[“dirname”目录名] [“basename”文件名] [“extension”文件后缀]【返回含信息的数组,下标不同】
4.get_meta_tags($url)//获取该页面的所有META标签【返回关联数组】

JSON

1.json_encode($data);//对变量进行JSON编码
2.json_decode($data)//对JSON格式的字符串进行解码
3.json_last_error();//返回最后一次反生的错误

其他函数

sleep(10)//脚本执行到这里后,延迟10秒继续执行
serialize()//返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。
unserialize()//对单一的已序列化的变量进行操作,将其转换回 PHP 的值。
当序列化对象时,PHP 将试图在序列动作之前调用该对象的成员函数 __sleep()。这样就允许对象在被序列化之前做任何清除操作。类似的,当使用 unserialize() 恢复对象时, 将调用 __wakeup() 成员函数。

2021服务器特惠,真便宜!
①真便宜:阿里云服务器69元1年,203元3年(全网最低价)
②代金券:2021阿里云代金券一键领取中
③腾讯云:2021腾讯云服务器秒杀特惠88元起

原创文章,作者:PHP面试题,如若转载,请注明出处:http://www.phpmianshiti.com/wiki/82/

发表评论

邮箱地址不会被公开。 必填项已用*标注

联系我们

PHP面试题

在线咨询:点击这里给我发消息
阿里云:2000元代金券领取
腾讯云:2860元代金券领取
免费提供技术支持,欢迎咨询!

2021阿里云服务器优惠(有香港节点)

1核/2G/1M---89元1年,三年229元;
2核/4G/3M---469元2年,三年799元;
2核/8G/5M---1199元3年
1核1G(香港,不用备案)---119元1年
还有还有4核8G6M、8核16G10M配置,价格很低很低!

注意:这个价格很便宜了,可以看看

我知道了