PHP头条
热点:

【内置】总结持续更新--php常用内置函数,总结--php内置函数


使用思路:根据功能找函数,如 要做个文件管理器的话,首先确定使用和目录/文件相关的函数,画出来html页面看都有什么功能,再一次分析这些功能的实现

常量

手册中的位置:附录-》保留字列表-》预定义常量

1、PHP_EOL  //换行
2、PHP_SAPI //判断是使用命令行还是浏览器执行的,如果 PHP_SAPI==’cli’ 表示是在命令行下执行 和php_sapi_name()函数一样
详解请看http://blog.csdn.net/chenhualeguan/article/details/46402807
3、PHP_OS //判断当前的操作系统,win或linux

字符串

substr — 截取英文字符串

mb_substr() — 截取字符串

1、explode — 使用一个字符串分割另一个字符串(字符串转数组)

2strtok — 分割字符串

2、trim — 删除字符串开头和结尾的空白字符(或其他字符)

3md5 — 计算字符串的MD5散列值(加密)更安全的方法用.拼接个字符串在加密

4sha1 — 计算字符串的sha1散列值(加密)

9strtolower — 将字符串转化为小写

10strtoupper — 将字符串转化为大写

11strrev — 将字符串倒过来输出

12number_format —以千位分隔符方式格式化一个数字

13ucfirst— 首字母转换为大写

14、chr指定的ASCII码和十进制互相转换(输入asii码或十六进制返回十进制的数字)

15、substr($str,0,strrpos($str,'&'));   //截取最后一个&之前的字符串

16、去掉最后一个字符

- substr($str,0,strlen($str)-1);

- substr($str, 0, -1)

- rtrim($str, ",")  //去掉最后一个逗号

str_pad使用另一个字符串填充字符串为指定长度

str_repeat重复一个字符串


搜索替换:

nl2br();  //将分行符"\r\n"转义成HTML的换行符"<br />"

str_replace — 子字符串替换

示例:


substr_replace — 替换字符串的子串

计算:

7strlen — 获取英文字符串长度

mb_strlen()— 获取中文字符串长度

8substr_count — 计算字串出现的次数

9、strcmp判断俩个字符串是否相等。返回值3种状态

位置:

1、stripos — 查找字符串首次出现的位置(不区分大小写)

2、strstr — 查找字符串的首次出现

3、stristr -- strstr查找字符串首次出现的位置,并忽略被查找字符串的大小写(stristr第2个参数忽略大小写)

3、strrpos — 计算指定字符串在目标字符串中最后一次出现的位置

4、strrchr — 查找指定字符在字符串中的最后一次出现

5、strripos — 计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)

过滤js:

$preg = "/<script[\s\S]*?<\/script>/i";                          //过滤正则
$value_str = preg_replace($preg,"",$str,3);    //第四个参数中的3表示替换3次,默认是-1,替换全部

 效验:正整数,负数,浮点数后2俩位

preg_match('/^[0-9]+(.[0-9]{1,2})?$/',$data['money']);   //返回01

转义:

1、stripcslashes — 反引用一个使用 addcslashes() 转义的字符串

2stripslashes — 去掉字符串中的\反斜线

3、addslashes使用反斜线引用(转义)字符串

4、htmlspecialchars -- 把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体:

字符串转数组

1str_split — 将字符串转换为数组


去掉html标签:

富文本编辑器,取数据时

1、strip_tags — 从字符串中去除 HTMLPHP标记

2、html_entity_decode —将所有HTML实体转换为它们的适用字符

3、strip_tags(html_entity_decode(存数据的时候去掉标签和实体));

 

打印

Print 输出字符串

Printf  输出格式化字符串

Sprintf  把字符串进行多种类型的格式化

Print_r  输出格式化数组或对象 

var_dump 打印出来的带结构更方便看

Var_export 2个参数为true直接返回该变量的值

签名:

1、openssl_verify — 验证签名

2、openssl_decrypt解密数据

3、openssl_encrypt — 加密数据

 

数组

注意:带&的,会改变数据的本身。因为&是引用传递,使用的是同一个内存空间

range — 建立一个包含指定范围单元的数组

array_keys — 返回数组中部分的或所有的key

array_values — 返回数组中所有的value

 

array_chunk — 将一个一维数组,按元素个数进行切割,返回分割完的二维数组

array_merge —  输2参数是合并数组。输1个参数是归整索引

array_merge_recursive -- 将2个数组合并成一个数组。并不是二维数组
extract($this->assign); //将一维数组打散,将数组中的每一个key变成一个单独的变量

array_reverse — 将数组倒过来输出

shuffle — 将数组打

array_map--将数组中的value取出,通过回调函数(自定义的函数),自己处理

array_walk使用回调函数(自定义的函数)对数组中的每个元素做回调处理

array_filter回调函数(自定义的函数)过滤数组中的单元

数组转字符串

1、implode — 将一个一维数组的值转化为字符串

搜索:

1array_search — 在数组中搜索给定的值,如果成功则返回相应的键名

2array_slice — 从数组中取出一段

3key — 从关联数组中取得键名

4、in_array -- 检查数组中是否存在某个值

5、array_key_exists //检测该字符串是否在一维数组中


填充:

1array_fill_keys — 使用指定的键和值 填充数组

2array_pad — 用值将数组填补到指定长度

5list — 把数组中的值赋给一些变量

移除:

1、array_shift — 返回 删除数组的第一个元素

3array_unique — 移除一维数组中重复的value

4、array_splice($temp, $del, 1);    //$temp从哪个数组中删除,$del要删除哪个位置的key,删除1位。

注意:返回的是被删除的元素,不要打印返回值。直接在下面打印$temp就是删除后的数组


队列:

单向队列:只能从头进,从尾出

双向队列:头尾都可进入

array_unshift — 将一个或多个value追加到数组的开头(头栈)

array_shift — 将数组开头的单元移出数组 (头栈)

array_push — 将一个或多个value追加到数组的末尾(尾栈)

array_pop — 返回 移出数组的最后一个元素(尾栈)


位置:

1current — 返回数组中的当前key(还有next下一个函数等...


计算

1、count — 计算数组中的key或对象中属性的,总个数

2、array_sum — 计算数组中所有value的和

3、array_product — 计算数组中所有值的乘积

4、array_count_values — 统计数组中所有的value出现的次数

5array_diff — 计算数组的差集,返回数组2中没有数组1的values

6array_intersect — 计算数组的交集,返回俩个数组中的共同values

7、array_column返回多维数组或结果集中,指定的一列(指定的下标,就是多维数组取某一列的值)

 

排序:

1array_multisort — 对多个数组或多维数组进行排序

2asort —对数组的value进行排序,并保持value和key的对应关系


3arsort — 对数组进行逆向排序并保持索引关系

4krsort — 对数组按照键名逆向排序

5ksort — 对数组按照键名排序

6rsort — 对数组逆向排序

7sort — 对数组排序


时间

date — 格式化一个本地时间/日期

getdate取得日期/时间信息(和date差不多,date返回字符串,这个返回数组,更方便处理

gettimeofday取得当前时间(主要是返回秒的数组)

time — 返回当前的 Unix时间戳

mktime — 取得一个设定日期的 Unix时间戳

strtotime — 将英文字母 转换为 时间戳


microtime — 返回当前 微秒数 和 Unix时间戳 

date_default_timezone_set — 设定用于一个脚本中所有日期时间函数默认

checkdate — 效验(月,日,年)是否合法

date_sunrise计算,某日与某地的,日时间

date_sunset — 计算,某日与某地的,日时间


文件/目录

fopen — 打开文件或者 URL

fwrite — 入文件(可安全用于二进制文件)

fread — 取文件(可安全用于二进制文件)

fgets — 从文件指针中读取一行

fgetc — 从文件指针中读取一个字符

fclose — 关闭一个已打开的文件指针

 

file_get_contents — 将整个文件入一个字符串

file_put_contents — 将一个字符串入文件

 

file — 把整个文件读入一个数组

readfile — 输出文件,加上header头,可以下载

parse_ini_file解析一个配置文件,传配置文件,以数组形式返回


路径:

realpath返回规范化的绝对路径名

目录

pathinfo — 返回文件路径的信息(包含目录名和文件名)

dirname — 获取路径中的目录

basename — 获取路径中的文件名

 

getcwd取得当前所在的目录

chdir切换目录

scandir列出 指定路径中的 文件和目录

dir返回一个 Directory 类实例


rename重命名一个文件或目录

mkdir — 新建目录

rmdir — 删除目录

opendir — 打开目录

readdir — 从目录句柄中取条目返回目录中下一个文件的文件名

rewinddir — 倒回目录句柄

closedir — 关闭目录



计算大小

filesize — 取得文件大小

disk_free_space — 磁盘剩余空间

disk_total_space — 返回一个目录的磁盘总大小


时间

filectime — 取得文件索引上次被修改的时间(其中inode (索引节点)用来存放档案及目录的基本信息包含时间、档名、使用者及群组等)

fileatime — 取得文件的上次访问时间(上次被读取)

filemtime —取得文件内容上次被修改时间(上次被写入)


其他

copy — 拷贝文件可以带路径)

unlink — 删除文件(可以带路径)

filetype — 取得文件类型

flock — 文件锁


位置

ftell — 返回文件指针读/写的位置

fseek — 在文件指针位置

rewind — 文件指针指向头

move_uploaded_file将上传的文件移动到新位置

示例:



数学


1、ceil进一法取整。有小数部分则进一位,没小数还取啥整啊

2、floor舍去法取整。整数是几就是几,因为他直接舍去了小数位

3、round对浮点数进行四舍五入。第2个参数是小数部分第几位开始四舍五入

4、intval获取变量的整数值

5、sprintf("%.2f",rand(0.1,100)/100);//0-1之间的随机数,保留小数点2位
6、mt_rand生成更好的随机数(和rand()的主要区别是,生成速度比rand()快4倍)7、uniqid生成一个唯一ID

程序执行函数

1、exec执行一个外部程序


2、system执行外部程序(shell命令),并且显示输出


判断

标量:

is_bool — 检测变量是否是布尔型

is_float — 检测变量是否是浮点型

is_int — 检测变量是否是整数

is_string — 检测变量是否是字符串

is_numeric — 检测变量是否为数字或数字字符串

is_scalar — 检测变量是否是一个标量


复合:

is_object — 检测变量是否是一个对象

is_array — 检测变量是否是数组


特殊:

is_resource — 检测变量是否为资源类型

is_null — 检测变量是否为 NULL


文件目录:

file_exists — 检查文件或目录是否存在

is_readable — 判断给定文件名是否可读

is_writable — 判断给定的文件名是否可写

is_executable — 判断给定文件名是否可执行

is_dir — 判断给定文件名是否是一个目录

is_uploaded_file —判断文件是否是通过HTTP POST上传的

类&&函数:

is_callable — 检测参数是否为合法的可调用结构

function_exists — 如果给定的函数已经被定义就返回 TRUE(函数是否存在)

示例:嵌套函数

class_exists — 检查类是否已定义


其他:


interface_exists检查接口是否已被定义

isset — 检测量是否存在

define --定义常量

defined检查某个名称的量是否存在

declare(strict_types=1); -- 该指令影响全部的函数调用。参考:http://blog.csdn.net/beyond__devil/article/details/52584082



选项和信息

1、ini_set — 设置一个配置选项的值设置配置文件的

注意:设置指定配置选项的值。这个选项会在脚本运行时保持新的值,并在脚本结束时恢复。 并不是所有选项都可以修改

2、ini_get获取一个配置选项的值

3、set_time_limit设置脚本最大执行时间(如果设置为0,没有时间方面的限制)

注意:

设置允许脚本运行的时间,单位为秒。如果超过了此设置,脚本返回一个致命的错误。默认值为30秒,或者是在php.inimax_execution_time被定义的值,如果此值存在。

4、ignore_user_abort设置客户端断开连接时是否中断脚本的执行(设置为true)

5、set_include_path — 设置 include_path 配置选项

//如果没有这个函数,每次引入include('a/test1.php');都需要写全路径,引入多个会很麻烦

//有了这个函数,先设置路径set_include_path('a');引入时直接引入include('test1.php');文件即可

6、get_include_path — 获取 include_path 配置选项

7、restore_include_path还原 include_path 配置选项的值8、putenv设置环境变量的值

php_ini_loaded_file取得已加载的 php.ini 文件的路径(返回此刻使用的php.ini的路径)





Session

1、session_set_cookie_params设置会话 cookie 参数(本函数会修改运行期 ini 设置值,有int_set的功能,可以通过 ini_get() 函数获取这些值)

注意:

Cookie 参数可以在 php.ini 文件中定义,本函数仅在当前脚本执行过程中有效。 因此,如果要通过函数修改 cookie 参数,需要对每个请求都要 在调用 session_start() 函数之前调用session_set_cookie_params() 函数

2、session_write_close - 写会话数据和结束会话

注意:会话数据通常是在脚本终止后存储的,不需要调用session_write_close()但是由于会话数据被锁定防止并发写入,所以任何时候只有一个脚本可以在会话上运行。将帧集与会话一起使用时,由于此锁定,您将体验逐帧加载的帧。只要完成对会话变量的所有更改,就可以通过结束会话来缩短加载所有帧所需的时间。


session_destroy — 删除一个会话中的全部数据

session_set_save_handler — 设置用户自定义会话存储函数


错误处理和日志记录

1、error_reporting设置应该报告何种 PHP 错误(此也为php.ini文件的其中一个配置项)

注意:在运行时设置error_reporting 指令。 PHP 有诸多错误级别,使用该函数可以设置在脚本运行时的级别

降低PHP的错误级别error_reporting(E_ERROR | E_PARSE );

2、error_get_last -- 获取最后发生的错误。返回了一个关联数组,描述了最后错误的信息,以该错误的 "type"、 "message"、"file" 和 "line" 为数组的键。

注意:如果该错误由 PHP 内置函数导致的,"message"会以该函数名开头。 如果还没有错误则返回NULL

封装示例:


error_reporting(E_ALL);                           //报告所有错误
//参数都是回调函数
set_error_handler([__CLASS__, 'appError']);             //错误,设置一个用户定义的错误处理函数
set_exception_handler([__CLASS__, 'appException']);     //异常,设置一个用户定义的异常处理函数
register_shutdown_function([__CLASS__, 'appShutdown']); //异常中止。callback在脚本执行完成或调用exit() 注册要执行的a
3、error_log发送错误信息到某个地方

编码

iconv('utf-8', 'gbk//TRANSLIT', $str); //生成二维码的时候,图片名字,汉字乱码

base64_encode使用 MIME base64 对数据进行编码

 base64_decode对使用 MIME base64 编码的数据进行解码

json_encode对变量进行 JSON编码

 json_decode对 JSON 格式的字符串进行编码

urlencode编码 URL 字符串

urldecode解码已编码的 URL 字符串

http_build_query生成 URL-encode 之后的请求字符串(将 数组或对象 转换成get请求参数的格式)



Ip

ip2long — 将一个IPV4的字符串互联网协议转换成数字格式

long2ip — 将长整数地址转换为(IPv4Internet标准点格式的字符串

 

性能

1memory_get_usage — 返回分配给 PHP 的内存量

Demo var_dump(memory_get_usage());

 

变量处理

1serialize —返回的是一个字符串。序列化产生一个可存储于任何地方的值这有利于存储或传递 PHP的值,同时不丢失其类型和结构。

2unserialize --已序列化的字符串变回 PHP的值

3、intval获取变量的整数值

4、settype设置变量的类型

5、gettype获取变量的类型


其他

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

sleep延缓执行

示例:


filter_var--使用特定的过滤器过滤一个变量

案例:

filter_var($email,FILTER_SANITIZE_EMAIL);    //待过滤的变量,过滤规则是一个常量


类和对象的函数

1、define -- 定义一个常量注意:该常量是全局的。如果是在类中用const定义,那是局部的,因为他会受到命名空间的影响

2、func_num_args - 返回传递给函数的参数个数

func_get_args返回一个包含函数参数列表的数组

func_get_arg返回参数列表的某一项

示例:


call_user_func第一个参数为回调函数,第2个参数传给回调函数的参数

示例:使用系统函数如md5(); 7行写'md5'

如果回调有多个形参,传参时实参也写多个,用逗号隔开


call_user_func_array — 第一个参数为回调函数,第2个参数传给回调函数的参数(该参数为数组)

示例:



 超全局变量

$_SERVER

//$_SERVER相关常用
echo $_SERVER['HTTP_HOST']."<br />";   //获取主机或域名
echo $_SERVER['PHP_SELF']."<br />";       //获取网页地址
echo $_SERVER["QUERY_STRING"]."<br />";    //获取url参数 ?后面的那一串,有可能是空
echo $_SERVER['HTTP_REFERER']."<br />";    //获取代理ip。上级请求的页面,有可能是空,直接通过url访问

//获取完整的url
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];

//包含端口号的完整url
echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];

//只取路径
echo $url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
1、$_SERVER['SERVER_ADDR'];  //服务器ip

2、$_SERVER['REMOTE_ADDR'];  //客户端ip

3、$_SERVER['SERVER_NAME'];  //服务器名称

4、$_SERVER['REQUEST_TIME'];  //请求时间

5、$_SERVER['HTTP_USER_AGENT'];  //头信息的agent信息

6、$_SERVER['REQUEST_URI'];  //请求的url

7、$_SERVER['PATH_INFO'];  //处理框架的路由等。抓url中地址路径部分


杂谈

1、在框架中声明变量,就给该变量套个{}

2、心跳 其实就是浏览器-》定时请求 服务器-》然后更新 最后在线时间-》然后后端统计下  最近在线的人数

4xss攻击<script>alert('123');</script>


 

 

 

 

 

 

 

 

 

 

www.phpzy.comtrue/php/480.htmlTechArticle【内置】总结持续更新--php常用内置函数,总结--php内置函数 使用思路:根据功能找函数,如 要做个文件管理器的话,首先确定使用和目录/文件相关的函数,画出来html页面看都有什么...

相关文章

相关频道:

PHP之友评论

今天推荐