67 votes

Renvoie la partie d'une chaîne avant la première occurrence d'un caractère en php

En PHP, quel est le moyen le plus simple de renvoyer la partie d'une chaîne avant la première occurrence d'un caractère spécifique ?

Par exemple, si j'ai une chaîne...

"Le renard brun rapide a sauté par-dessus etc etc."

... et je filtre pour un caractère espace (" "), la fonction renverrait "Les"

Merci!

111voto

user187291 Points 28951

pour les googleurs : strtok est mieux pour ça

 echo strtok("The quick brown fox",  ' ');

89voto

Jacob Relkin Points 90729

Tu pourrais faire ça :

 $string = 'The quick brown fox jumped over the lazy dog';
$substring = substr($string, 0, strpos($string, ' '));

Mais j'aime mieux ça :

 list($firstWord) = explode(' ', $string);

5voto

tjk Points 184

Que dis-tu de ça:

 $string = "The quick brown fox jumped over the etc etc.";

$splitter = " ";

$pieces = explode($splitter, $string);

echo $pieces[0];

4voto

Hebe Points 184

Pour résumer il y a 4 façons

 strstr($str,' ',true);
strtok($str,' ');
explode(' ', $str)[0];  //slowest
substr($str, 0, strpos($str, ' '));

La différence est que si aucun délimiteur n'est trouvé :

strstr renvoie faux

strtok explode renvoie la chaîne entière

substr renvoie une chaîne vide

si des problèmes inattendus avec plusieurs octets apparaissent, essayez d'utiliser mb_strstr

 mb_strstr($str, '', true);

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