使用思路:根据功能找函数,如 要做个文件管理器的话,首先确定使用和目录/文件相关的函数,画出来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

字符串

* parse_str -- 字符串解析成变量

substr — 截取英文字符串

mb_substr() — 截取中文字符串

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

2、strtok — 分割字符串

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

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

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

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

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

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

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

13、ucfirst— 首字母转换为大写

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 — 替换字符串的子串

计算:

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

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

8、substr_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']);   //返回0或1

转义:

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

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

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

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

字符串转数组

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

去掉html标签:

富文本编辑器,取数据时

1、strip_tags — 从字符串中去除 HTML和PHP标记

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

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

打印

Print 输出字符串

Printf  输出格式化字符串

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

Print_r  输出格式化数组或对象

示例:print_r($invited_member_name,true)     //将一维数组,写入到txt文件中

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取出,通过回调函数(自定义的函数),自己处理

//将三科成绩总和,从高到低排列出前10名。如果有任意一科成绩不满足80分,则不计入成绩

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

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

数组转字符串

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

搜索:

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

2、array_slice — 从数组中取出一段

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

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

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

填充:

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

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

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

移除:

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

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

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

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

队列:

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

双向队列:头尾都可进入

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

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

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

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

位置:

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

reset() - 将数组的内部指针指向第一个单元

end() - 将数组的内部指针指向最后一个单元(可以用来判断,当前的key是不是最后一个key)

next() - 将数组中的内部指针向前移动一位

each() - 返回数组中当前的键/值对并将数组指针向前移动一步

prev() - 将数组的内部指针倒回一位

计算

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

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

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

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

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

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

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

排序:

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

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

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

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

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

6、rsort — 对数组逆向排序

7、sort — 对数组排序

时间

*格林威治时间转化:

$gelin = "Thu Nov 15 2018 17:02:41 GMT+0800 (中国标准时间)";
//格林威治 转 格式化时间(年月日时分秒)
echo date("Y-m-d H:i:s",strtotime(str_replace("(中国标准时间)", '', $gelin)));    //2018-11-15 17:02:41
echo "<hr />";
//格林威治 转 时间戳
$str = mb_substr($gelin,0,-8);
echo strtotime($str);       //1542272561

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

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

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

time — 返回当前的 Unix时间戳

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

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

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

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

date_default_timezone_set('PRC')    //之前时间不准,系统时间比当前时间大概晚8个小时。
或在php.ini中将其改为date.timezone =”PRC”

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.ini的max_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 — 将长整数地址转换为(IPv4)Internet标准点格式的字符串

性能

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

Demo var_dump(memory_get_usage());

变量处理

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

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

3、intval — 获取变量的整数值

4、settype — 设置变量的类型

5、gettype — 获取变量的类型

其他

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

sleep — *延缓执行

示例1:

示例2:制作慢日志
     echo date("h:i:s")."<br />";
     sleep(2);
     echo date("h:i:s");

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

案例:

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

类和对象的函数

1、define -- 定义一个常量

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

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

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

4、func_get_arg — 返回参数列表的某一项

示例:

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

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

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

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

示例:

7、get_object_vars — 返回由对象属性组成的关联数组

魔术方法

*__call 和 __callStatic

超全局变量

$_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['DOCUMENT_URI'];    //DOCUMENT_URI只有用nginx打印$_SERVER才有,apache没有,该参数文档中没有
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、心跳 其实就是浏览器-》定时请求 服务器-》然后更新 最后在线时间-》然后后端统计下  最近在线的人数

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

debug_backtrace

*【内置】总结持续更新--php常用内置函数相关推荐

  1. 公众号内资源提供(持续更新中)--category

    公众号内资源提供(持续更新中) 音乐篇 精彩微信关注:随心下呀(Suixinxia007) 酷我VIP 国际版抖音 制作抖音 酷狗VIP 音乐湖 音乐侠 全网版(网页) 酷我VIP(新) 酷我VIP( ...

  2. OpenCore-EFI-配置模版(持续更新)

    前言 随着OpenCore日臻完善,将在以后会更多的用于黑苹果的安装.同时,在各位大佬的大力支持与推广,各种入门,进阶教程的推出,OpenCore已经从神界降临到人间.逐渐为普通黑苹果爱好者掌握和使用 ...

  3. python 类的内置方法_Python 类的常用内置方法

    类的内置方法(魔法方法): 凡是在类内部定义,以__开头__结尾的方法,都是类的内置方法,类的内置方法,会在满足某种条件下自动触发. 1.1__new__ __new__:在___init__触发前, ...

  4. python的标准类型内建模块有_python的常用内建模块与常用第三方模块

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 一.常用内置模块 1.datetime Python 提供了一个 time 和 calendar 模 ...

  5. 【持续更新】常用的工具命令

    SVN checkout 取出:svn co <URL> update 更新:如果本地已有仓库,执行update即可取得最新:svn update 查看全部log:svn log 查看近3 ...

  6. 工作中常用的linux命令,Linux工作中常用到的一些命令(持续更新)常用的

    1.查看运行级别3开启的服务列表: chkconfig --list|grep 3:on 2.查找某类型的文件并计算总大小. find / -name *.conf -exec wc -c {} \; ...

  7. Python基础总结之常用内置方法总结

    文章目录 前言 1.str 1.1.内置方法: 1.2.常用的内置方法 1.3.String模块的一些方法 2.list 2.1.内置方法 2.2.常用内置方法 3.tupple 3.1.内置方法 3 ...

  8. 微课|玩转Python轻松过二级(2.4节):常用内置函数用法精要2

    适用教材: 董付国.<玩转Python轻松过二级>.清华大学出版社,2018. 第2章  运算符.表达式与内置对象 2.4  Python常用内置函数用法精要 2.4.4  排序与逆序 2 ...

  9. 微课|玩转Python轻松过二级(2.4节):常用内置函数用法精要4

    适用教材: 董付国.<玩转Python轻松过二级>.清华大学出版社,2018. 第2章  运算符.表达式与内置对象 2.4  Python常用内置函数用法精要 2.4.7  range() ...

最新文章

  1. 我使用Python和Django在自己的网站上建立了一个会员专区。 这是我学到的东西。
  2. 骚操作!用 CPU 烤肉,这位程序员做到了
  3. 国际域名转出ICANN投诉
  4. 一张图解释Linux的目录结构
  5. 【Android 事件分发】事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )
  6. 软件测试作业1 -- 关于c++项目中类相互调用的问题与解决
  7. col-lg-8 col-lg-offset-2
  8. 回顾经典,Netflix的推荐系统架构
  9. 配置实体框架DbContext的可扩展方案
  10. python 跳过异常元素继续,在python中的迭代器/生成器中引发异常后继续
  11. android 梅花布局,Android相对布局实现各种梅花效果
  12. 洛谷 [P1387] 最大正方形
  13. CentOS 7.x 安装 Maven
  14. centos网卡错误Device eth0 does not seem to be present
  15. Silverlight实例教程 - 自定义扩展Validation类,验证框架的总结和建议
  16. 京东万能转链API接口 含商品信息优惠券转链 京东线报如何转链?
  17. 检测MOS管五种方法
  18. 自动控制原理学习--奈奎斯特稳定判据
  19. 解决ValueError: Cannot run multiple SparkContexts at once; existing SparkContext
  20. Python爬虫-抓取PC端网易云音乐评论(GUI界面)

热门文章

  1. IntelliJ IDEA配置svn+ssh连接
  2. 2019国产数据库大盘点
  3. ArcGIS Server发布GP服务
  4. 怎么扩大图片大小?如何调整图片大小不变形?
  5. 四款AI视频翻译产品横评
  6. python真值是什么意思_关于python:系列的真值是模棱两可的。
  7. 服务器网站iis如何关闭,08系统如何关闭IIS服务(图文)
  8. 第五章 有关IP协议的技术
  9. 探索工业互联网领域中的设备通信协议
  10. while和switch循环如何使用