178 votes

Comment tout obtenir après un certain personnage ?

J'ai une corde et j'aimerais tout avoir après une certaine valeur. La chaîne commence toujours par un ensemble de nombres, puis un trait de soulignement. J'aimerais avoir le reste de la ficelle après le soulignement. Donc, par exemple, si j'ai les chaînes suivantes et ce que je voudrais retourner :

"123_String" -> "String"
"233718_This_is_a_string" -> "This_is_a_string"
"83_Another Example" -> "Another Example"

Comment puis-je faire quelque chose comme ça ?

405voto

databyss Points 1673

Le strpos() trouve le décalage du trait de soulignement, puis prend tout à partir de cet indice plus 1, à partir de.

$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;

Si vous voulez aussi vérifier si le caractère de soulignement (_) existe dans votre chaîne avant d'essayer de l'obtenir, vous pouvez utiliser ce qui suit :

if (($pos = strpos($data, "_")) !== FALSE) { 
    $whatIWant = substr($data, $pos+1); 
}

6voto

Pinonirvana Points 617

J'utilise strrchr(). Par exemple pour trouver l'extension d'un fichier j'utilise cette fonction :

$string = 'filename.jpg';
$extension = strrchr( $string, '.'); //returns "jpg"

5voto

nggit Points 151

Une autre façon simple, en utilisant strchr() ou strstr() :

$str = '233718_This_is_a_string';

echo ltrim(strstr($str, '_'), '_'); // This_is_a_string

Dans votre cas, peut-être que ltrim() seul suffira :

echo ltrim($str, '0..9_'); // This_is_a_string

Mais seulement si la partie droite de la chaîne (after _) ne commence pas par des nombres, sinon elle sera également coupée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X