Как я могу удалить с помощью 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.''; }