Sólo para añadirlo a la mezcla, recientemente he aprendido esta técnica:
list($s) = explode(' ',$s);
I sin embargo, hice un punto de referencia rápido, porque no he encontrado el método strtok anteriormente, y strtok es un 25% más rápido que mi solución de lista/explosión, en las cadenas de ejemplos dadas.
Además, cuanto más larga/más delimitada sea la cadena inicial, mayor será la brecha de rendimiento. Da un bloque de 5000 palabras, y explotar hará una matriz de 5000 elementos. strtok simplemente tomará el primer "elemento" y dejará el resto en la memoria como una cadena.
So strtok gana para mí.
$s = strtok($s,' ');
Dos problemas potenciales con esto: A medida que use 'strrpos() ', se busca el * last * whitespace y puede terminar con nombres como" Hello Nice "para cadenas como" Hello Nice World ". El segundo punto es que no devolverá nada cuando no haya espacios en blanco en el nombre. Si bien este comportamiento podría ser deseado, también podría causar molestia. – str