略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: mb_strripos

2024-05-06

mb_strripos

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

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

说明

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

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

返回值

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

参见

  • strripos() - 计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)
  • strrpos() - 计算指定字符串在目标字符串中最后一次出现的位置
  • mb_strrpos() - 查找字符串在一个字符串中最后出现的位置
add a noteadd a note

User Contributed Notes 2 notes

up
1
easai
12 years ago
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;
    }
?>
up
0
ivrokrambler at gmail dot com
4 years ago
<?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)

官方地址:https://www.php.net/manual/en/function.mb-strripos.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3