strpos函数反向
我想找到一种可以反向找到字符位置的方法。例如倒数的最后一个“e”开始计数。
从例子
$string="Kelley";
$strposition = strpos($string, 'e');
它会给我位置1。
int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )
在 haystack 字符串中查找最后一次出现 needle 的数字位置。
您需要的是strrpos来查找字符串中最后一次出现的子字符串的位置
$string = "Kelley";
$strposition = strrpos($string, 'e');
var_dump($strposition);
尝试这个:
strrpos()
希望有帮助。
strripos
并为结果strrpos
添加$needle
长度,例如:
<?php
$haystack = '/test/index.php';
$needle = 'index.php';
echo strrpos($haystack, $needle);//output: 6
另一种方法是strrev
用于从末尾检索位置,例如:
<?php
$haystack = 'Kelley';
$needle = 'e';
echo strpos(strrev($haystack), strrev($needle));//Output: 1
尽可能简单:strrpos()
这将返回从右边第一次出现的字符。
function rev ($string, $char)
{
if (false !== strrpos ($string, $char))
{
return strlen ($string) - strrpos ($string, $char) - 1;
}
}
echo rev ("Kelley", "e");
简单的功能,你可以添加:
function stripos_rev($hay,$ned){
$hay_rev = strrev($hay);
$len = strlen($hay);
if( (stripos($hay_rev,$ned)) === false ){
return false;
} else {
$pos = intval(stripos($hay_rev,$ned));
$pos = $len - $pos;
}
return $pos;
}
唯一有效的解决方案是此功能:
function strpos_reverse ($string, $search, $offset){
return strrpos(substr($string, 0, $offset), $search);
}