40 votes

fonction de chaîne php pour obtenir une sous-chaîne avant la dernière occurrence d'un caractère

$string = "Hello World Again".
echo strrchr($string , ' '); // Gets ' Again'

Maintenant, je veux obtenir "Hello World" du $string [La sous-chaîne avant la dernière occurrence d'un espace ' ' ]. Comment puis-je l'obtenir ? ?

57voto

meouw Points 21368
$string = "Hello World Again";
echo substr($string, 0, strrpos( $string, ' ') ); //Hello World

Si le personnage n'est pas trouvé, rien n'est repris

14voto

sdleihssirhc Points 18791

C'est en quelque sorte une façon bon marché de le faire, mais vous pourriez diviser, pop, puis rejoindre pour le faire :

$string = 'Hello World Again';
$string = explode(' ', $string);
array_pop($string);
$string = implode(' ', $string);

7voto

zaf Points 12350

Une façon (agréable et détendue) :

$string = "Hello World Again";
$t1=explode(' ',$string);
array_pop($t1);
$t2=implode(' ',$t1);
print_r($t2);

Autres moyens (plus délicats) :

$result = preg_replace('~\s+\S+$~', '', $string);

ou

$result = implode(" ", array_slice(str_word_count($string, 1), 0, -1));

4voto

MadMax Points 499

strripos - Trouve la position de la dernière occurrence d'une sous-chaîne insensible à la casse dans une chaîne

 $string = "hello world again";
 echo substr($string, 0, strripos($string, ' ')); // Hello world

3voto

Till Points 1806
$myString = "Hello World Again";
echo substr($myString, 0, strrpos($myString, " "));

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