str - indexOf y lastIndexOf en PHP?
strpos php (3)
En Java, podemos usar indexOf
y lastIndexOf
. Dado que esas funciones no existen en PHP, ¿cuál sería el equivalente de PHP de este código Java?
if(req_type.equals("RMT"))
pt_password = message.substring(message.indexOf("-")+1);
else
pt_password = message.substring(message.indexOf("-")+1,message.lastIndexOf("-"));
En php:
stripos() función stripos() se usa para encontrar la posición de la primera aparición de una subcadena insensible a mayúsculas en una cadena.
strripos() función strripos() se usa para encontrar la posición de la última aparición de una subcadena que no distingue entre mayúsculas y minúsculas en una cadena.
Código de muestra:
$string = ''This is a string'';
$substring =''i'';
$firstIndex = stripos($string, $substring);
$lastIndex = strripos($string, $substring);
echo ''Fist index = '' . $firstIndex . '' '' . ''Last index = ''. $lastIndex;
Salida: índice de puño = 2 Último índice = 13
Necesitas las siguientes funciones para hacer esto en PHP:
strpos() Encuentra la posición de la primera aparición de una subcadena en una cadena
strrpos() Encuentra la posición de la última aparición de una subcadena en una cadena
substr
Devolver parte de una cadena
Aquí está la firma de la función substr
:
string substr ( string $string , int $start [, int $length ] )
La firma de la función de substring
(Java) se ve un poco diferente:
string substring( int beginIndex, int endIndex )
substring
(Java) espera que el índice final sea el último parámetro, pero substr
(PHP) espera una longitud.
No es difícil obtener el índice final en PHP :
$sub = substr($str, $start, $end - $start);
Aquí está el código de trabajo
$start = strpos($message, ''-'') + 1;
if ($req_type === ''RMT'') {
$pt_password = substr($message, $start);
}
else {
$end = strrpos($message, ''-'');
$pt_password = substr($message, $start, $end - $start);
}
<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>