mb_strripos

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

mb_strripos查找字符串中最后出现的字符串的位置(不区分大小写)

说明

mb_strripos(
    string $haystack,
    string $needle,
    int $offset = 0,
    ?string $encoding = null
): int|false

mb_strripos() 基于字符数量执行多字节安全的 strripos() 操作。 needle 的位置从 haystack 的开头开始计算。第一个字符的位置是 0。第二个字符的位置是 1。与 mb_strrpos() 不同,mb_strripos() 不区分大小写。

参数

haystack

要从中获取 needle 最后出现位置的字符串

needle

要在 haystack 中查找的字符串

offset

haystack 中开始搜索的位置

encoding

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

返回值

返回 needlehaystack 字符串中最后出现位置的数字位置,如果未找到 needle,则返回 false

变更日志

版本 说明
8.0.0 needle 现在可以接受空字符串。
8.0.0 encoding 现在可以为空。

参见

  • strripos() - 在字符串中查找不区分大小写的子字符串的最后出现位置
  • strrpos() - 在字符串中查找子字符串的最后出现位置
  • mb_strrpos() - 在字符串中查找字符串的最后出现位置

添加笔记

用户贡献笔记 2 notes

0
easai
14 年前
以下是在 PHP 中类似 Java 的 startsWith/endsWith 实现。

<?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;
}
?>
-1
ivrokrambler at gmail dot com
7 年前
<?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)
To Top