PHP函数篇(二)---字符串函数篇(2)

236 阅读3分钟

本文已参与【新人创作礼】活动 ,一起开启掘金创作之路

# 1、判断字符串中是否包含指定字符串的N种方法

strstr

定义和用法

strstr() 函数搜索字符串在另一字符串中是否存在,存在,返回该字符串及剩余部分,否则返回 FALSE

注释: 该函数是区分大小写的。如需进行不区分大小写的搜索,请使用stristr()函数

语法 strstr(string,search,before_search)

参数描述
string必需。规定被搜索的字符串。
search必需。规定要搜索的字符串。如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符
before_search可选。一个默认值为 "false" 的布尔值。如果设置为 "true",它将返回 search 参数第一次出现之前的字符串部分。
    # 通过字母对应的ASCII值搜索字符串,并返回包含该字符及该字符后面的剩余部分
    # Nothing brave, nothing have.(不入虎穴,焉得虎子。) [65~90为26个大写英文字母]
    
    # 例1
    var_dump(strstr("NOTHING BRAVE, NOTHING HAVE.",82));(R对应的ASCII值为82# 输出 string(19) "RAVE, NOTHING HAVE."          
    
    # 例2
    var_dump(strstr("123456789@qq.com", '@'));
    # 输出 string(7) "@qq.com"
    
    # 例3 
    # Never too old to learn, never too late to turn.(亡羊补牢,为时未晚。)
    var_dump(strstr("Never too old to learn, never too late to turn.","too",true));       
    # 输出 string(6) "Never "
    

stristr

定义和用法

stristr() 函数搜索字符串在另一字符串中的第一次出现。

注释: 该函数是不区分大小写的。如需进行区分大小写的搜索,请使用 strstr()函数。

语法 stristr(string,search,before_search)

参数描述
string必需。规定被搜索的字符串。
search必需。规定所搜索的字符串。如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符。
before_search可选。一个默认值为 "false" 的布尔值。如果设置为 "true",它将返回 search 参数第一次出现之前的字符串部分。

作用基本与strstr类似 这里就不再浪费大家宝贵的时间

strpos

定义和用法

strpos() 函数查找字符串在另一字符串中第一次出现的位置(区分大小写)。

相关函数

strrpos() - 查找字符串在另一字符串中最后一次出现的位置(区分大小写)

stripos() - 查找字符串在另一字符串中第一次出现的位置(不区分大小写)

strripos() -查找字符串在另一字符串中最后一次出现的位置(不区分大小写)

语法 strpos(string,find,start)

参数描述
string必需。规定被搜索的字符串。
find必需。规定要查找的字符。
start可选。规定开始搜索的位置。
    # No news is good news.(没有消息就是好消息。)
    $str = 'No news is good news';
    
    var_dump(strpos($str,'news'));
    # 输出 int(3)
    
    var_dump(strpos($str,'NEWS'));
    # 输出 bool(false)

explode

定义和用法

explode() 函数把字符串按指定字符分割为数组

语法 explode(separator,string,limit)

参数描述
separator必需。规定在哪里分割字符串。
string必需。要分割的字符串。
limit可选。规定所返回的数组元素的数目。可能的值:-大于0 - 返回包含最多 limit 个元素的数组- 小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组- 0 - 返回包含一个元素的数组
    # No one can call back yesterday.(昨日不会重现.)
    function checkstr($str){
         $needle ='back';//判断是否包含a这个字符
         $arr = explode($needle,$str);
         if(count($arr)>1){
          return true;
         } else{
          return false;
         }
    }
    
    var_dump(checkstr('No one can call back yesterday.'));
    # 输出 bool(true)
    

    $str = 'Yao|Kobe|James|Durant|Wade';

    // limit = 0
    echo '<pre>';
    var_dump(explode('|',$str,0));
    # 输出 
    array(1) {
      [0]=>
      string(26) "Yao|Kobe|James|Durant|Wade"
    }

    // limit = 正数
    echo '<pre>';
    var_dump(explode('|',$str,2));
    # 输出
    array(2) {
      [0]=>
      string(3) "Yao"
      [1]=>
      string(22) "Kobe|James|Durant|Wade"
    }
    
    // limit = 负数
    echo '<pre>';
    var_dump(explode('|',$str,-1));
    # 输出
    array(4) {
      [0]=>
      string(3) "Yao"
      [1]=>
      string(4) "Kobe"
      [2]=>
      string(5) "James"
      [3]=>
      string(6) "Durant"
    }

    //不接limit参数
    echo '<pre>';
    var_dump(explode('|',$str));
    array(5) {
      [0]=>
      string(3) "Yao"
      [1]=>
      string(4) "Kobe"
      [2]=>
      string(5) "James"
      [3]=>
      string(6) "Durant"
      [4]=>
      string(4) "Wade"
    }