• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • mb_strripos()

    (PHP 5 >= 5.2.0, PHP 7)

    大小写不敏感地在字符串中查找一个字符串最后出现的位置

    说明

    mb_strripos(string $haystack,string $needle[,int $offset= 0[,string $encoding= mb_internal_encoding()]]): int

    mb_strripos()基于字符数执行一个多字节安全的strripos()操作。$needle的位置是从$haystack的开始进行统计的。第一个字符的位置是 0,第二个字符的位置是 1。和mb_strrpos()不同的是,mb_strripos()是大小写不敏感的。

    参数

    $haystack

    查找$needle在这个字符串中最后出现的位置。

    $needle

    $haystack中查找这个字符串。

    $offset

    $haystack中开始搜索的位置。

    $encoding

    使用的字符编码名称。如果省略了,则将使用内部编码。

    返回值

    返回字符串$haystack$needle最后出现位置的数值。如果没有找到$needle,它将返回FALSE

    参见

    • strripos()计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)
    • strrpos()计算指定字符串在目标字符串中最后一次出现的位置
    • mb_strrpos()查找字符串在一个字符串中最后出现的位置
    Here are Java like startsWith/endsWith implementations in PHP.
    <?php
      function startsWith($haystack,$needle)
      {
       $res=FALSE;
       if(mb_strripos($haystack,$needle,0,"utf-8")==0)
         $res= TRUE;
       return $res;
      }
      function endsWith($haystack,$needle)
      {
       $res=FALSE;
       $len=mb_strlen($haystack);
       $pos=$len-mb_strlen($needle);
       if(mb_strripos($haystack,$needle,0,"utf-8")==$pos)
         $res= TRUE;
       return $res;
      }
    ?>
    
    <?php
    function backStrpos($str, $needle, $offset){
      $needler = backStr($needle);
      $strr = backStr($str);
      $offsetr = strlen($str) - 1 - $offset;
      $posr = mb_stripos($strr, $needler, $offsetr);
      return strlen($str) - 1 - $posr - strlen($needle);
    }
    function backStr($str){
      $str = str_replace(array('<', '>'), array('>', '<'), $str);
      return strrev($str);
    }
    function backStrpos($str, $needle, $offset){
      $needler = backStr($needle);
      $strr = backStr($str);
      $offsetr = strlen($str) - 1 - $offset;
      $posr = mb_stripos($strr, $needler, $offsetr);
      return strlen($str) - 1 - $posr - strlen($needle);
    }
    function backStr($str){
      $str = str_replace(array('<', '>'), array('>', '<'), $str);
      return strrev($str);
    }
    $test = '<table><TR>TEXT</TR><TR>TEST</TR></table>';
    $pos = mb_stripos($test, 'TEST', 0);
    var_dump($pos);
    var_dump(backStrpos($test, '<tr', $pos));
    var_dump(backStrpos($test, '<tr', backStrpos($test, '<tr', $pos)));
    ------->
    int(24)
    int(19)
    int(6)

    上篇:mb_strrichr()

    下篇:mb_strrpos()