注册 登录

清河洛

PHP中字符串常用处理函数

qingheluo2016-12-16清河洛321
去除首尾特定字符trim($str[,$charlist]):返回字符串去除首尾空白字符或特定字符后的结果如果不指定第二个参数,trim()将去除这些字符:" "空格符 "\t"制表符 "\n"换行符 "\r" 回车符 "\0" 空字节符 "\x0B" 垂直制表符 $str='abcabcdefac'; trim($str,'bac');//去除收尾含有b或a或c的字符 ltrim()仅去除左侧字符,rtrim()仅去除...

去除首尾特定字符

trim($str[,$charlist]):

返回字符串去除首尾空白字符或特定字符后的结果

如果不指定第二个参数,trim()将去除这些字符:

" "空格符  "\t"制表符  "\n"换行符  "\r" 回车符
"\0" 空字节符  "\x0B" 垂直制表符

$str='abcabcdefac';
trim($str,'bac');//去除收尾含有b或a或c的字符

ltrim()仅去除左侧字符,rtrim()仅去除右侧字符

大小写转换函数

strtoupper($str)转换为大写

strtolower($str)转换为小写

ucfirst()函数将第一个字母转换为大写

ucwords()函数将每个单词第一个字母转换为大写

字符串查找函数

strlen($string)获取字符串的长度。

substr_count($str,$needle[,int $offset=0][,int $length])

返回子字符串$needle在字符串$str中出现的次数(区分大小写)
$offset为开始计数的偏移位置
$length为指定偏移位置之后的最大搜索长度

strpos($str,$needle[,int $offset = 0])

返回$needle在$str中首次出现的数字位置。$offset为开始计数的偏移位置

strstr($str,$needle[,bool $before_needle=false])

返回$str字符串从$needle第一次出现的位置开始到结尾的字符串(包含$needle)
$before_needle若为TRUE将返回$needle在$str中的位置之前的部分(不包含$needle)

strrchr($str,$needle)

返回$str字符串以$needle的最后出现位置开始直到$str末尾

字符串替换函数

str_replace($search,$replace,$subject[,int $count])

返回一个字符串或者数组
该字符串或数组是将$subject中全部的$search都替换为$replace
$count如果指定那么返回的结果赋值到该变量

与html标签相关的函数

htmlspecialchars

把一些预定义的字符转换为HTML实体:
&为&amp
"为&quot
'为&#039
<为 &lt
>为 &gt

strip_tags($str[,$allowable_tags])

返回字符串去除空字符、HTML和PHP标记(包含标签和注释)后的结果,$allowable_tags指定不被去除的字符列表

$str=<<START
<p style="color:red;font-size:128px;">斯蒂芬斯蒂芬
<div style="color:red;">的武器大全我</div>
START;
echo strip_tags($str,"<div>");

字符串截取函数

substr($string,int $start[,int $length])

字符串$string从偏移$start位开始截取到偏移$length位
$start和$length为负数则为从右侧数第几位

字符串分隔函数

explode ( string $delimiter , string $string [, int $limit ] )

返回被字符串$delimiter作为边界点分割出来字符串组成的数组

str_split(string $string[,int $split_length=1])

将字符串转换为每一段的长度为$split_length的数组

查询字符串解析

parse_str($string[,$array])

"name1=val1&name2=val2&...&namen=valn"格式的字符串,php提供了直接解析该格式字符串的函数

当不提供$array参数时解析为$name=val形式
当提供$array参数时解析为$array[$name]=val形式
解析时如果已存在相同名称变量则覆盖原值

字符串转义

1、addslashes ( string $str ):转义(给单引号双引号等加上反斜杠)

2、stripslashes( string $str ):功能和addslashes相反

编码转换

iconv ( string $in_charset , string $out_charset , string $str )

将字符串从 in_charset转换编码到out_charset。

编码 URL 字符串

urlencode ( string $str ):编码 URL 字符串,将字符串编码并将其用于URL的请求部分

urldecode( string $str ) :解码已编码的 URL 字符串

字符串和ASCII码

ord()函数用于将字符串转化为ASCII码值

chr()函数用于将ASCII码值转化为字符串

字符串加密

md5 ( string $str [, bool $raw_output = false ] ):返回32字符十六进制形式。raw_output设为TRUE将以16字节长度的原始二进制格式返回

sha1 ( string $str [, bool $raw_output = false ] ):返回40字符十六进制形式。raw_output设为TRUE将以20字符长度的原始格式返回

hash_pbkdf2 (string $algo,string $password,string $salt,int $iterations[,int $length=0[,bool $raw_output=FALSE]]):加盐加密

algo:哈希算法名称,hash_algos()或者hash_hmac_algos()获取所有受支持的哈希算法名称。
password:要加密的密码
salt:使用的“盐”
iterations:进行导出时的迭代次数
raw_output:为TRUE输出原始二进制数据, 为FALSE输出小写的16进制字符串。
length:结果数据的字节长度。传入0使用所选算法的默认输出长度

base64_encode(string $data) :使用 MIME base64 对数据进行编码,数据要比原始数据多占用33%左右的空间

base64_decode (string $data) :对使用 MIME base64 编码的数据进行解码

字符串压缩

gzcompress($str[,int $level=6),把字符串$str压缩,第二个参数是压缩水平,可以为0的无压缩至9的最大压缩

gzuncompress($str),把压缩以后的字符串还原

gzencode() 和 gzdecode()

gzdeflate()和gzinflate()

上面两个的功能和gzcompress一样,都是用来压缩和解压缩的,这三个都可以用来创建压缩文件(.gz格式)。

$data = implode("", file("22.pptx"));
$gzdata = gzencode($data, 9);
$fp = fopen("1.pptx.zip", "w");
fwrite($fp, $gzdata);
fclose($fp);

上例中压缩文件(1.pptx.zip)中的文件名为1.pptx,即默认在压缩文件中的文件名会以压缩文件名的名称命名

字符串重复

str_repeat(string $input,int $multiplier) 返回input重复multiplier次后的结果

字符串填充

str_pad(string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )

使用另一个字符串$pad_string填充字符串$input到指定长度$pad_length

如果$pad_length是负数、小于或者等于输入字符串的长度,不会发生任何填充

$pad_string默认使用空格字符填充

如果填充字符的长度不能被 pad_string 整除,那么 pad_string 可能会被缩短

可选的$pad_type参数的可能值为STR_PAD_RIGHT,STR_PAD_LEFT或STR_PAD_BOTH。表示从左端、右端或者同时两端被填充,默认为STR_PAD_RIGHT。

处理中文字符串

对于以上的字符串函数,有些可以用于中文,但有些却不适用中文

所以,PHP提供了专门的函数来解决这样的问题。中文字符可以是gbk,utf8,gb2312

mb_strlen() 对应的函数为 strlen() 求字符串的长度

mb_strstr() 对应的函数为 strstr() 求某字符串到结尾的字符

mb_strpos() 对应的函数为 strpos() 求出字符最先出现处

mb_substr() 对应的函数为 substr() 取出指定的字符串

mb_substr_count() 对应函数为 substr_str() 返回字符串出现的次数

把字符串作为命令执行

eval($str)

把字符串按照PHP代码来计算,字符串必须以分号结尾
如果字符串中没有return语句,返回 NULL
如存在解析错误,返回false

shell_exec(string $command)

创建一个shell进程并执行命令
以字符串的方式返回命令执行的输出
如执行有错误或没有任何输出,则返回null

exec ( string $command [, array &amp;$output [, int &$return_var ]] )

不创建shell进程, 而是由php进程直接创建一个子进程,运行指定的命令,只返回命令的最后一行
所有的返回以$output参数形式返回,每行输出填充数组中的一个元素
进程的退出代码以参数$return_var变量返回

passthru ( string $command [, int &amp;$return_var ])

与exec() 类似, 不同的是, 命令的所有输出返回直接输出到浏览器上, 等效是把所有返回内容直接echo输出

system()

和passthru()类似, 但是system()方法会在程序的每行输出的时候执行一次缓存输出动作
可以理解为, 只要外部程序输出一行, php就会马上把内容推送到浏览器, 无论这个内容是否足够大, 即使输出的内容只有一个字母


网址导航