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

Как я могу удалить с помощью PHP последнее слово из строки?

Например, строка "Hi, I'm Gian Marco" станет "Hi, I'm Gian" .

попробуйте с этим:

 $txt = "Hi, I'm Gian Marco"; $str= preg_replace('/\W\w+\s*(\W*)$/', '$1', $txt); echo $str 

вывод

 Hi, I'm Gian 

Проверь это

  <?php $str ='"Hi, I\'m Gian Marco" will be "Hi, I\'m Gian"'; $words = explode( " ", $str ); array_splice( $words, -1 ); echo implode( " ", $words ); ?> 

source: удалить последние два слова из строки

Текущее решение в порядке, если вы не знаете последнее слово, а длина строки короткая.

Если вы это знаете, например, при циклизации строки concat для такого запроса:

  foreach ($this->id as $key => $id) { $sql.=' id =' . $id . ' OR '; } 

Лучшее решение:

  $sql_chain = chop($sql_chain," OR "); 

Помните, что preg_replace с регулярным выражением ОЧЕНЬ медленно с длинными строками. В этом случае Chop в 100 раз быстрее, и первичное усиление может быть существенным.

Вы можете сделать это с регулярным выражением. (см. ответ Ахмеда Зиани. )

Но в PHP вы также можете сделать это, используя некоторую встроенную функцию. см. код ниже

 $text = "Hi, I'm Gian Marco"; $last_space_position = strrpos($text, ' '); $text = substr($text, 0, $last_space_position); echo $text; 

Этот код может помочь вам:

 $str="Hi, I'm Gian Marco"; $split=explode("",$str); $split_rem=array_pop($split); foreach ($split as $k=>$v) { echo $v.''; }