PHP基础 —— 字符串处理

字符串处理

字符串处理

去除字符串首尾字符

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" }
    ?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值