2014-11-14 23 views
14

In Java, possiamo usare indexOf e lastIndexOf. Dal momento che tali funzioni non esistono in PHP, quale sarebbe l'equivalente PHP di questo codice Java?indexOf e lastIndexOf in PHP?

if(req_type.equals("RMT")) 
    pt_password = message.substring(message.indexOf("-")+1); 
else 
    pt_password = message.substring(message.indexOf("-")+1,message.lastIndexOf("-")); 
+1

http://php.net/manual/en/function.strstr.php – alu

+0

puoi utilizzare IndexOf e LastIndexOf utilizzando JavaScript perché esistono in esso. – Dotnetter

+0

* "Poiché queste funzioni non esistono in PHP" * - le hai cercate? L'ultima volta che ho controllato, PHP stava ancora fornendo questa funzionalità. 'indexOf' è chiamato [' strpos() '] (http://php.net/manual/en/function.strpos.php),' lastIndexOf' è chiamato ['strrpos()'] (http: // php .net/manuale/it/function.strrpos.php). – axiac

risposta

10

In php:

  • stripos() funzione viene usata per individuare la posizione della prima occorrenza di una stringa maiuscole e minuscole in una stringa.

  • strripos() La funzione viene utilizzata per trovare la posizione dell'ultima occorrenza di una sottostringa non sensibile al maiuscolo/minuscolo in una stringa. Codice

Esempio:

$string = 'This is a string'; 
$substring ='i'; 
$firstIndex = stripos($string, $substring); 
$lastIndex = strripos($string, $substring); 

echo 'Fist index = ' . $firstIndex . ' ' . 'Last index = '. $lastIndex; 

uscita: Fist index = 2 Ultima index = 13

20

È necessario le seguenti funzioni per fare questo in PHP:

strpos Trova la posizione della prima occorrenza di una sottostringa in una stringa

strrpos Trovare la posizione dell'ultima occorrenza di una sottostringa in una stringa

substr parte di ritorno di una stringa

Ecco la firma della funzione substr:

string substr (string $string , int $start [, int $length ]) 

La firma della funzione substring (Java) sembra un po 'diversa:

string substring(int beginIndex, int endIndex) 

substring (Java) si aspetta la fine-index come ultimo parametro, ma substr (PHP) si aspetta una lunghezza.

non è difficile, a get the end-index in PHP:

$sub = substr($str, $start, $end - $start); 

Ecco il codice di lavoro

$start = strpos($message, '-') + 1; 
if ($req_type === 'RMT') { 
    $pt_password = substr($message, $start); 
} 
else { 
    $end = strrpos($message, '-'); 
    $pt_password = substr($message, $start, $end - $start); 
} 
2
<pre> 

<?php 
//sample array 
$fruits3 = [ 
"iron", 
    1, 
"ascorbic", 
"potassium", 
"ascorbic", 
    2, 
"2", 
"1" 
]; 


// Let's say we are looking for the item "ascorbic", in the above array 


//a PHP function matching indexOf() from JS 
echo(array_search("ascorbic", $fruits3, TRUE)); //returns "4" 


//a PHP function matching lastIndexOf() from JS world 
function lastIndexOf($needle, $arr){ 
return array_search($needle, array_reverse($arr, TRUE),TRUE); 
} 
echo(lastIndexOf("ascorbic", $fruits3)); //returns "2" 


//so these (above) are the two ways to run a function similar to indexOf and lastIndexOf() 

?> 
</pre>