2012-10-21 105 views
11

strpos功能我想找到一種方法在哪裏可以找到在reverse.For例的字符的位置最後的「e」,在相反的起始計數。strpos功能以相反在反向</p> <p>PHP

從例如

$string="Kelley"; 
$strposition = strpos($string, 'e'); 

它會給我的位置1.

+2

歡迎來到Stack Overflow!不要過多地阻止你提問,但要始終記住谷歌首先 - 在php中反向搜索strpos函數時,'strrpos()'出現在我的第三位。謝謝! –

+2

我有同樣的問題,我Google搜索,來到這裏,找到答案,開心 – Allisone

回答

4

你需要的是strrpos找到字符串

$string = "Kelley"; 
$strposition = strrpos($string, 'e'); 
var_dump($strposition); 
2

一個子字符串的最後出現的位置試試這個:

strrpos() 

希望有所幫助。

0

簡單地可以是:strrpos()

這將返回從右側的字符第一次出現的。

1
function rev ($string, $char) 
{ 
    if (false !== strrpos ($string, $char)) 
    { 
     return strlen ($string) - strrpos ($string, $char) - 1; 
    } 
} 

echo rev ("Kelley", "e"); 
1

strriposstrrpos添加$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 
0

簡單的功能,您可以添加:

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; 

}