字符串处理
去除字符串首尾字符
trim()
去除字符串首尾两边的空白字符(或者其他字符)
trim( $str , [ str ] );
$str 需要 操作的字符串,string
str 是参数,不设置此参数默认去除空白字符,设置参数,则去除设置的参数,string
返回值为string
- " ",空字符
- "\t",制表符
- "\n",换行符
- "\r",回车符
- "\0",空字节符
- "\x0B",垂直制表符
<?php
$str = " yz\nYZ " ;
var_dump($str);//string(20) " yz YZ "
var_dump(trim($str));//string(5) " yz YZ "
?>
添加一个参数,表示要去掉的字符串,每个字符顺序可以随意,并不一定按照指定格式
<?php
$str = "({[name:YZ]})" ;
var_dump(trim($str,"(){}[]"));//"name:YZ"
?>
ltrim()
去除左边的的空白字符(或者其他字符
rtrim()
去除右边的的空白字符(或者其他字符
大小写函数
strtoupper
将字符串转化为大写
<?php
$str = "My name is Yz";
echo strtoupper($str);//MY NAME IS YZ
?>
strtolower
将字符串转化为小写
<?php
$str = "My name is Yz";
echo strtolower($str);//my name is yz
?>
字符串查找函数
substr_count
计算字符串出现的次数
返回值string
参数:
substr_count( $str,str,[start],[length])
$str 表示需要 操作的字符串,string
str 表示要查找的字符串,string
start 表示开始计数的偏移位置,若为负数,则从末尾开始向前计数,int
length 表示 最大搜索长度,从偏移位置向后查的数量,如果偏移量加上这个长度的和大于 $str 的总长度,int
<?php
$str = "My name is Yz ,what is your name ?";
echo substr_count($str,'is');//1 2
echo substr_count($str,'is',-5);//0
echo substr_count($str,'is',-15,5);//1
?>
不会计算重叠的字符串
<?php
$str = 'jcdjcdjcd';
echo substr_count($str, 'jcdjcd');//1
?>
strpos
查找字符串首次出现的位置
strpos($str,str,[start])
$str 表示需要 操作的字符串,string
str 表示要查找的字符串,string
start 表示搜索会从字符串该字符数的起始位置开始统计,若为负数,则搜索会从字符串结尾指定字符数开始。
返回值:int
<?php
$str = "MyNameisYz,whatisYourName";
echo strpos($str,'is');//6
echo strpos($str,'is',-10);//15
?>
stripos
查找字符串首次出现的位置(不区分大小写)
strpos($str,str,[start])
strstr
查找字符串首次出现的位置,返回该位置到结尾位置所有的字符
strstr($str,str,bool)
bool 为 true,表示返回首次出现位置,之前的所有字符
<?php
$str = "My name is Yz ,what is your name ?";
echo strstr($str,'is');//is Yz ,what is your name ?
echo strstr($str,'is',true);//My name
?>
stristr
与strstr类似,但查找时不区分大小写
字符串替换函数
str_replace
str_replace(this_str,str,$str,[$count])
this_str 表示 查找的目标字符串,或者字符串数组
str 表示 查找的目标值,或者字符串数组,string
$str 表示 要操作的字符串
$count 表示替换发生的次数
返回值:string
<?php
$str = "WhiteStruggle";
echo str_replace("S","W",$str);//WhiteWtruggle
echo str_replace(array("S","W"),array("W","S"),$str);//ShiteStruggle
echo str_replace(array("S","W"),array("W","S"),$str,$count);//ShiteStruggle
echo $count;//3
?>
当使用数组时,会从前往后进行替换,有先后顺序,并非同时替换
str_ireplace
与 str_replace类似,但是忽略大小写
与HTML标签相关的函数
htmlspecialchars
将特殊字符转换为 HTML 实体
htmlspacialchars($str,[flags],[encoding]);
flags 表示 位掩码
例如:
常量名称 描述
ENT_COMPAT 会转换双引号,不转换单引号。
ENT_QUOTES 既转换双引号也转换单引号。
ENT_NOQUOTES 单/双引号都不转
encoding 表示 编码的字符集,例如: ISO-8859-1、 ISO-8859-15、 UTF-8、 cp866、 cp1251、 cp1252、 KOI8-R
字符 | 替换后 |
---|---|
& (& 符号) | & amp; |
" (双引号) | & quot;,除非设置了 ENT_NOQUOTES |
' (单引号) | 设置了 ENT_QUOTES 后, & #039; (如果是 ENT_HTML401) ,或者 & apos; (如果是 ENT_XML1、 ENT_XHTML 或 ENT_HTML5)。 |
< (小于) | & lt; |
> (大于) | & gt; |
<?php
$str = "<p> My name is <b>Yz</b>!</p>";
echo $str;//My name is Yz!
echo htmlentities($str);//<p> My name is <b>Yz</b>!</p>
?>
strip_tags
从字符串中去除 HTML 和 PHP 标记(注释也会被去掉)
strip_tags($str , [allowable_tags]);
allowable_tags 表示 使用可选的第二个参数指定不被去除的字符列表。
返回值:string
<?php
$str = "<p> My name is <b>Yz</b>!</p>";
echo strip_tags($str);//My name is Yz!
echo strip_tags($str,"<b>");//My name is Yz!
?>
输出一下就知道了
字符串截取函数
substr
返回字符串的子串
substr ( $str , start , [ length ] )
start 表示 字符串的位置,从 0 开始计算
start<0,返回的字符串将从 string 结尾处向前数第 start 个字符开始。
如果 string 的长度小于 start,将返回 FALSE。
length 表示 设置start往后输出字符串的个数
小于0,str字符串从末尾位置向前数length,start到此位置的字符串,start包含其中,则返回空
等于0,此函数返回空
不设置此参数,默认是从start直到字符串结尾
<?php
$str = "WhiteStruggle";
echo substr($str,5)."<br>";//Struggle
echo substr($str,5,-5)."<br>";//Str
echo substr($str,5,-1)."<br>";//Struggl
echo
echo substr($str,5,-10)."<br>";//
echo substr($str,5,0)."<br>";//
?>
返回字符串 string 由 start 和 length 参数指定的子字符串。
字符串分隔函数
explode
使用一个字符串分割另一个字符串
explode ( delimiter , $str ,[$limit ] )
delimiter 表示 边界上的分隔符,string
$limit 表示 返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。
limit < 0 , 返回除了最后 - limit 外的所有元素
limit = 0 ,则会被当做 1
返回值:array
<?php
$str = "{name:'小明'},{age:25},{class:1506}";
var_dump(explode(",",$str));//array(3) { [0]=> string(15) "{name:'小明'}" [1]=> string(8) "{age:25}" [2]=> string(12) "{class:1506}" }
var_dump(explode(",",$str,0));//array(1) { [0]=> string(37) "{name:'小明'},{age:25},{class:1506}" }
var_dump(explode(",",$str,-1));//array(2) { [0]=> string(15) "{name:'小明'}" [1]=> string(8) "{age:25}" }
var_dump(explode(",",$str,2));//array(2) { [0]=> string(15) "{name:'小明'}" [1]=> string(21) "{age:25},{class:1506}" }
?>
str_split
将字符串转换为数组
str_split ( $str, [length ] )
length 表示 每一段的长度,默认为1
返回值:array
<?php
$str = "1515153215261506";
$str2 = "grade:15";
var_dump(str_split($str,4));//array(4) { [0]=> string(4) "1515" [1]=> string(4) "1532" [2]=> string(4) "1526" [3]=> string(4) "1506" }
var_dump(str_split($str2));//array(8) { [0]=> string(1) "g" [1]=> string(1) "r" [2]=> string(1) "a" [3]=> string(1) "d" [4]=> string(1) "e" [5]=> string(1) ":" [6]=> string(1) "1" [7]=> string(1) "5" }
?>
网友评论