PHP常用函数笔记

1、字符串函数

  • 输出与格式化
    echo:输出一个或多个字符串
    print:输出字符串
    printf:输出格式化字符串,与C语言同款
    print_r:打印关于变量的易于理解的信息
    var_dump:打印变量的相关信息
  • 字符串的去除与填充
    trim:去除字符串首尾处的空白字符或其他字符
    ltrim/rtrim:取出首/尾处的空白字符或其他字符
    str_pad(string,length,pad_string,pad_type):把字符串填充到新的长度

string:要填充的字符串
length:新的字符串的长度
pad_string:(可选)填充的字符串,默认是空白格
pad_type:(可选)STR_PAD_BOTH :填充字符串的两侧,若非偶数,则右侧获得额外的填充
STR_PAD_LEFT/STR_PAD_RIGHT:填充字符串的左/右侧

  • 字符串的连接与分割
    implode:将一个一维数组转为为字符串
    explode:将一个字符串分割为另一个字符串
    str_split:将字符串分割成数组
    str_repeat:重复连接字符串
  • 字符串截取
    substr:返回字符串的子串
    mb_substr($str,$begin,$length,$charset)

截取中文字符尽可能用mb_substr,用substr可能会乱码

substr_count(主字符串,子串):返回子串在主字符串中出现的次数
strchr/strstr:查找指定字符字符串首次出现的位置,区分大小写
stristr:同上……,不区分大小写
strrchr:查找指定字符在字符串中最后一次出现的位置

  • 字符串替换
    strrev:字符串翻转
    str_replace(查找的值,替换的值,原字符串,次数):子字符串替换
    substr_replace(原字符串,替换的值,从何处开始替换,替换的长度):替换字符串的子串

替换的长度,length
正数:被替换的字符串长度
负数:表示待替换的子字符串结尾处距离原字符串末端的字符个数
0 - 插入而非替换

  • 字符串的长度与位置
    strlen:获取字符串的长度
    strpos:查找某字符在字符串中首次出现的位置
    strrpos:查找某字符在字符串中最后一次出现的位置
    strripos:查找某字符在字符串中最后一次出现的位置(不区分大小写)
  • 字符转换
    stotolower/strtoupper:将字符串转化为小/大写
    lcfirst/ucfirst:将字符串首字母转化为小/大写
    ucwords:将字符串中每个单词的首字母大写
    ord:获取单个字符的ASCII码
    chr:将ASCII码转换为字符
  • 字符串比较
    similar_text:判断两个字符串的相似程度
<?php
//第三个变量是存储结果的变量
similar_text("Hello World","Hello Shanghai",$percent);
echo $percent . "%";//48%

strcmp:比较两个字符串
strcasecmp:比较两个字符串,不区分大小写

<?php
//比较的结果会返回相差的字符串数量
echo strcmp("Hello world!","Hello world!")."<br>"; // 0
echo strcmp("Hello world!","Hello")."<br>"; // 7
echo strcmp("Hello world!","Hello world! Hello!")."<br>"; // -7
?>
  • 特殊字符处理
    nl2br:在字符串所有新行之前插入HTML标记的换行标记<br>
    addslashes:在预定义字符之前添加反斜杠
    strip_tags:从字符串中取出html及php标记
    htmlentientities:格式url和代码字符,但中文字符也会格式化,使中文字符输入是乱码
    htmlspecialchars:把预定义字符转换为html实体字符,只格式特殊符号
    htmlspecialchars_decode:把html实体字符转换为预定义字符
  • 统计中文字符
    mb_strlen( $str , [, $encoding = mb_internal_encoding() ]):统计字符长度
    mb_strwidth( $str , [, $encoding = mb_internal_encoding() ]):统计字符宽度
    mb_substr ( $str , $start [, $length = NULL [, $encoding = mb_internal_encoding() ]] ):按字符个数截取
    mb_strimwidth ( $str , $start , $width [, $trimmarker = “” [, $encoding = mb_internal_encoding() ]] ):按字符宽度截取
strlen('你好ABC');		//9  : 中文算3个字符
mb_strlen('你好ABC');	//5  : 中英文都算1个字符
mb_strwidth('你好ABC');	//7  :中文算两个字符
//截取中文字符时,建议使用mb_strimwidth()
//mb_substr() 截取的是字符个数,而 mb_strimwidth() 截取的是字符宽度
mb_strimwidth($str, 0, 4, '...','utf-8')	//当截取宽度超过要求时,则再最后面自动添加...
  • 统计英文字符
    str_word_count:字符串英文单词数量统计

2、时间函数

time:返回当前unix时间戳
microtime:返回当前 Unix 时间戳的微秒数。
date:格式化一个本地日期时间
strtotime:将字符串解析为unix时间戳
mktime(hour,minute,second,month,day,year):返回 GMT 日期的 UNIX 时间戳
date_default_timezone_set:设定脚本中的时区
getdate([timestamp]):以数组形式返回指定日期信息
checkdate(month,day,year):验证日期是否合法

3、数学函数

max:找出最大值     round:四舍五入
min:找出最小值     ceil:向上取整
abs:取绝对值      floor:向下取值
sqrt:取平方根      rand:产生一个随机整数
pow:求某数的指数    exp:计算e的指数

max的用法
max(1,3,5,6,7) //7  max(array(2,4,5)) //5
max(0,‘hello’)  //0   max(‘hello’,0) //hello
max(-1,‘hello’) //hello
max(array(2,4,8),array(2,5,7))//array(2,5,7),因为4<5
max(‘string’,array(2,5,7),42) //array(2,5,7) 同时给出数组与非数组作为参数,总是将数据视为最大值返回

  • 高精度函数

bcadd:加法   bccomp: 比较   bcdiv: 相除
bcmod: 求余数  bcmul: 乘法   bcpow: 次方
bcpowmod: 先次方然后求余数    bcscale: 给所有函数设置小数位精度
bcsqrt: 求平方根 bcsub: 减法

  • 数字操作函数

number_format(number,decimals,decimalpoint,separator):格式化数字
number:数字,decimals:小数点后的位数,decimalpoint:规定用作小数点的字符串,separator规定千分位的字符串

4、数组函数

  • 指针操作函数
    current:返回数组的当前单元
    key:从关联数组中获得键名
    next:将数组中的内部指针向前移动一位
    prev:将数组中的内部指针向后移动一位
    reset:将数组中的内部指针指向第一单元
    end:将数组中的内部指针指向最后一个单元
    each:返回当前元素的键名和键值,并将内部指针向前移动
    list:把数组中的值赋给一些变量
$my_arr = ['cat','dog','horse'];
list($a,$b,$c) = $my_arr;
  • 单元操作函数
    array_map:可对数组的每个元素进行回调函数
    array_walk:可对数组的每个元素进行用户自定义回调函数
    array_pop:将数组的最后一个单元删除
    array_push:将一个或多个单元压入数组尾部
    array_shift:将数组开头的单元移出数组
    array_unshift:在数组开头插入一个或多个单元
    array_chunk:将数组分割成多个数组
$cars = array("Volvo","BMW","Toyota","Honda","Mercedes","Opel");
$cars = array_chunk($cars,2);
/*
[
	["Volvo","BMW"],
	["Toyota","Honda"],
	["Mercedes","Opel"]
]
*/

array_slice:从数组中取出一段
array_splice:把数组中的一部分去掉并用其他值取代

$a = array("red","green","blue","yellow","brown");
$a = array_slice($a,2);//["blue","yellow","brown"]
//array_splice与array_slice很像,只不过array_splice不直接删除元素,而是用其他值替代它
//array_splice(array,start,length,array)
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"purple","b"=>"orange");
array_splice($a1,0,2,$a2);//[[0] => 'purple' [1] => 'orange' ['c'] => 'blue' ['d'] => 'yellow']
//当length=0时
$a1=array("0"=>"red","1"=>"green");
$a2=array("0"=>"purple","1"=>"orange");
array_splice($a1,1,0,$a2);//Array ( [0] => red [1] => purple [2] => orange [3] => green )
  • 排序函数
    sort:对数组进行排序
    asort:对数组进行排序,并保持索引关系
    ksort:对数组按键名进行排序
    usort:使用自定义函数对数组进行排序
    rsort:对数组进行逆向排序
    arsort/krsort:同上
    shuffle:将数组打乱
  • 查找函数
    in_array:检查数组中是否存在某个值
    array_key_exists:检查给定的键名是否存在于数组中
    array_search:在数组中搜索给定的值,如果成功则返回相应的键名
  • 统计函数
    count:计算数组中的单元数组,只统计存在的元素的个数、null不计算
    array_count_value:返回数组中每个元素值重复的个数
    array_sum:计算数组中所有值的和
  • 其他
    array_reverse:返回一个单元顺序相反的数组
    array_flip:交换数组的键值和键名
    array_merge:合并一个或多个数组
    array_column:返回数组中的指定的一列
    array_diff:返回两个数组的差集
    array_intersect:返回两个数组的交集
    array_unique:移除数组中重复的值
    array_keys:返回数组中所有的键名
    array_values:返回数组中所有的值
    range:建立一个包含指定范围单元的数组
    array_rand($arr,$length):从$arr一个数组中,随机取出$length个元素

5、网络函数

  • urlencode&&urldecode 和 rawurlencode&&rawurldecode
    对url进行编码和解码,区别:没有raw前缀的将空格编码为+号,有raw前缀的将空格编码为%20
  • gethostbyaddr($ip):从IP获取主机信息
  • gethostbyaddr($hostname):返回主机名对应的 IPv4地址,$hostname如www .yyfs.com
  • gethostname():获取本地主机名
  • ip2long($ip):将ip转换为长整型数字
  • long2ip($long):将长整型数字转换回ip
  • checkdnsrr($host):给指定主机域名或者IP地址做DNS通信检查
  • getservbyport($port,$protocol):根据端口号获取服务名称,protocol指定需要此服务的是tcp还是udp
  • getservbyname($service,$protocol):根据服务名称获取服务对应的端口号,$service类似于‘http’,‘telnet’,‘ftp’,‘ssh’等

6、系统函数

  • getenv():获取环境变量
  • system($command, $return_var):执行外部程序,有返回值则存在$return_var中
// 输出 shell 命令 "ls" 的返回结果
// 并且将输出的最后一样内容返回到 $last_line。
// 将命令的返回值保存到 $retval。
$last_line = system('ls', $retval);
// 打印更多信息
echo '<hr>Last line of the output: ' . $last_line . '<hr>Return value: ' . $retval;
  • exec($command[, &$output[, $return_var]]):执行一条外部命令,command:要执行的命令,output存储了command的输出结果,return_var:返回了命令command输出的最后一行
  • passthru($command [, &$return_var] ):执行外部程序并且显示原始输出,$return_var:存储命令command返回状态

其他

  • sleep($n)
    $n为数字,单位为秒
    功能:让程序停止运行指定的秒数
  • break&&continue
    break [n]/continue[n]:表示可以退出几层循环,默认退出当前一层循环

break 2;则是退出两层循环

  • func_get_args&&func_get_arg($i)&&func_num_args
    当无法确定传参数量的时候,可以使用这三个函数获取参数
    func_get_args():获取实参数据列表,成为一个数组
    func_get_arg($i) :获取第$i个实参数据,$i从0开始算起
    func_num_args():获取实参的数量
  • highlight_file($filename,$return):语法高亮文件$filename文件的源代码,当$return为true时,高亮后的代码不会被直接打印输出,而是以字符串的形式返回,false时则会直接输出代码
  • disk_total_space():获取目录磁盘总大小
    disk_free_space():获取目录磁盘可用空间
  • parse_ini_file($file,$process_sections):解析一个ini配置文件,并以数组形式返回,当$process_sections为true时,将会返回一个多维数组,包括了配置文件中每一节的名称和设置
/*
[names]
me = yyfs
you = hua

[urls]
first = "http://www.yyfs.com"
second = "http://www.even.cn"
*/
parse_ini_file("test.ini");
/*
Array
(
[me] => yyfs
[you] => hua
[first] => http://www.yyfs.com
[second] => http://www.even.cn
)
*/
parse_ini_file("test.ini",true);
/*
Array
(
	[names] => Array
	(
		[me] => yyfs
		[you] => hua
	)
	[urls] => Array
	(
		[first] => http://www.yyfs.com
		[second] => http://www.even.cn
	)
)
*/
  • debug_print_backtrace():回溯请求,能返回脚本里任意行中调用的函数的名称
<?php
function a() {
    b();
}
function b() {
    c();
}
function c(){
    debug_print_backtrace();
}
a();
#0 c() called at [C:\Users\Administrator\Desktop\yyfs\test.php:6] 
#1 b() called at [C:\Users\Administrator\Desktop\yyfs\test.php:3] 
#2 a() called at [C:\Users\Administrator\Desktop\yyfs\test.php:11] 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值