web-dev-qa-db-fra.com

indexOf et lastIndexOf en PHP?

En Java, nous pouvons utiliser indexOf et lastIndexOf. Puisque ces fonctions n’existent pas en PHP, quel serait l’équivalent PHP de ceci Java??

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

Vous avez besoin des fonctions suivantes pour le faire en PHP:

strpos Trouver la position de la première occurrence d'une sous-chaîne dans une chaîne

strrpos Trouver la position de la dernière occurrence d'une sous-chaîne dans une chaîne

substr Retourne une partie d'une chaîne

Voici la signature de la fonction substr:

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

La signature de la fonction substring (Java) est un peu différente:

string substring( int beginIndex, int endIndex )

substring (Java) attend l'index final comme dernier paramètre, mais substr (PHP) attend une longueur.

Ce n'est pas difficile, pour obtenir la longueur souhaitée par l'index de fin de fichier en PHP :

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

Voici le code de travail

$start = strpos($message, '-') + 1;
if ($req_type === 'RMT') {
    $pt_password = substr($message, $start);
}
else {
    $end = strrpos($message, '-');
    $pt_password = substr($message, $start, $end - $start);
}
39
Alfred Bez

En php:

  • La fonction stripos () permet de trouver la position de la première occurrence d'une sous-chaîne insensible à la casse dans une chaîne.

  • La fonction strripos () permet de trouver la position de la dernière occurrence d'une sous-chaîne insensible à la casse dans une chaîne.

Exemple de code:

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

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

Sortie: Index du poing = 2 Dernier index = 13

15
Mahbub
<?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 "2"

// 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 "4"

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