2015-04-03 2 views
2

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

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

+0

возможного дубликата [Удалить последние два слова из строки] (http://stackoverflow.com/questions/10541808/remove-last-two-words-from-a-string) –

+0

Я не знаю contringf String! Я просто хочу удалить последнее слово (не последний символ). – Kiuki

+0

@MamounBenghezal Как это дубликат java-вопроса? – Loko

ответ

17

попробовать с этим:

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

из положить

Hi, I'm Gian 
+1

GOOD (Ty) !!! И если строка заканчивается цифрами типа «[email protected] 29348 39388», и я хочу удалить «39388»? (я не знаю цифры) – Kiuki

+1

@ Kiuki принимает ответ, если он сработает для вас. – Loko

+0

@Kiuki Попробуйте с этим: $ str = preg_replace ('~ \\ s + \\ S + $ ~', "", $ txt); –

4

проверить эту

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

echo implode(" ", $words); 
?> 

источник: Remove last two words from a string

+0

Активировать это, поскольку он отвечает на вопрос OP без использования регулярных выражений. – nockieboy

0

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

$str="Hi, I'm Gian Marco"; 

$split=explode("",$str); 
$split_rem=array_pop($split); 
foreach ($split as $k=>$v) 
{ 
    echo $v.''; 
} 
2

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

В случае, если вы знаете, например, когда зацикливание строку Concat для запроса, как это:

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

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

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

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

2

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

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

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