Как удалить все после пробела в PHP?

У меня есть база данных с именами, и я хочу использовать замену PHP после пробела на именах, например:

$x="Laura Smith"; $y="John. Smith" $z="John Doe"; 

Я хочу, чтобы он вернулся

 Laura John. John 

Сделайте это, это заменит что-нибудь после символа пробела. Может также использоваться для тире:

 $str=substr($str, 0, strrpos($str, ' ')); 

Чтобы добавить его в микс, я недавно узнал эту технику:

 list($s) = explode(' ',$s); 

Я просто сделал быстрый тест, потому что раньше я не сталкивался с методом strtok, а strtok на 25% быстрее, чем мое решение list / explode, в приведенных примерах строк.

Кроме того, чем длиннее / больше ограничивается начальная строка, тем больше будет разрыв производительности. Дайте блок из 5000 слов, а взорвать будет массив из 5000 элементов. strtok просто возьмет первый «элемент» и оставит остальное в памяти как строку.

Так strtok побеждает для меня.

 $s = strtok($s,' '); 

Попробуй это

 <?php $x = "Laura Smith"; echo strtok($x, " "); // Laura ?> 

strtok

Нет необходимости использовать регулярное выражение, просто используйте метод explode.

 $item = explode(" ", $x); echo $item[0]; //Laura 

Вы также можете это сделать

 $str = preg_split ('/\s/',$x); print $str[0]; 

Метод, предоставленный TheBlackBenzKid, действителен для вопроса, однако, если представлен аргумент, который не содержит пробелов, он возвращает пустую строку.

Хотя регулярные выражения будут более дорогостоящими вычислительными, они обеспечивают намного больше гибкости, например:

 function get_first_word($str) { return (preg_match('/(\S)*/', $str, $matches) ? $matches[0] : $str); } 

Этот ответ удалит все после первого пространства, а не последнее, как в случае принятого ответа. Использование strpos и substr

 $str = "CP hello jldjslf0"; $str = substr($str, 0, strpos( $str, ' ')); echo $str; 

$ x = «Лаура Смит»; $ temparray = implode ('', $ x); echo $ temparray [0];

Извините, иногда смешайте взрыв и взрывайте …