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)