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]