2014-11-14 21 views
14

In Java können wir indexOf und lastIndexOf verwenden. Da diese Funktionen in PHP nicht existieren, was wäre das PHP-Äquivalent dieses Java-Codes?indexOf und 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

Sie können IndexOf und LastIndexOf verwenden, indem Sie JavaScript verwenden, da sie darin enthalten sind. – Dotnetter

+0

* "Da diese Funktionen in PHP nicht existieren" * - haben Sie sie gesucht? Beim letzten Mal stellte PHP diese Funktionalität noch zur Verfügung. 'indexOf' heißt [' strpos() '] (http://php.net/manual/en/function.strpos.php),' lastIndexOf' heißt ['strrpos()'] (http: // php .net/manual/de/function.strrpos.php). – axiac

Antwort

10

in PHP:

  • stripos() Funktion wird verwendet, um die Position des ersten Auftretens eines Groß- und Kleinschreibung String in einem String zu finden.

  • strripos() Die Funktion wird verwendet, um die Position des letzten Vorkommens einer Groß- und Kleinschreibung in einem String zu finden.

Beispielcode:

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

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

Ausgang: Faust index = 2 Last-Index = 13

20

Sie benötigen folgende Funktionen dies in PHP zu tun:

strpos die Position des ersten Auftretens eines Teil in einem

in einem String

String findet

strrpos die Position des letzten Vorkommens eines Teil finden

substr Teil Rückkehr einer Zeichenfolge

Hier ist die Signatur der substr Funktion:

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

Die Signatur der substring Funktion (Java) sieht etwas anders:

string substring(int beginIndex, int endIndex) 

substring (Java), um den End-Index als letzten Parameter erwartet, aber substr (PHP) eine Länge erwartet.

ist es nicht schwer, zu get the end-index in PHP:

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

Dies ist der Arbeitscode

$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>