2012-10-21 29 views
11
funzione

strpos in senso inversofunzione strpos in senso inverso in php

mi piacerebbe trovare un metodo dove posso trovare una posizione di carattere in reverse.For esempio ultimo "e" a partire conteggio in senso inverso.

Da esempio

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

mi darà posizione 1.

+2

Benvenuti in Stack Overflow! Per non scoraggiarti troppo dal chiedere, ma ricordati sempre prima di Google - quando cerchi la funzione 'strpos al contrario in php',' strrpos() 'si posiziona al terzo posto per me. Grazie! –

+2

Ho avuto lo stesso problema, ho cercato su Google, sono venuto qui, ho trovato la risposta, felice – Allisone

risposta

4

Quello che vi serve è strrpos per trovare la posizione dell'ultima occorrenza di una sottostringa in una stringa

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

Prova questo:

strrpos() 

Speranza che aiuta.

0

semplicemente come può essere: strrpos()

Ciò restituirà la prima occorrenza del carattere da destra.

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

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

strripos e strrpos aggiungere $needle lunghezza di provocare, ad esempio .:

<?php 
$haystack = '/test/index.php'; 
$needle = 'index.php'; 

echo strrpos($haystack, $needle);//output: 6 

Un'alternativa è usare strrev per la posizione recuperare dalla fine, ad esempio:

<?php 
$haystack = 'Kelley'; 
$needle = 'e'; 

echo strpos(strrev($haystack), strrev($needle));//Output: 1 
0

funzione semplice, è possibile aggiungere:

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; 

}