php string, чтобы получить подстроку перед последним вхождением символа

$string = "Hello World Again". echo strrchr($string , ' '); // Gets ' Again' 

Теперь я хочу получить «Hello World» из $string [Подстрока перед последним вхождением пробела '']. Как это получить?

Solutions Collecting From Web of "php string, чтобы получить подстроку перед последним вхождением символа"

Это своего рода дешевый способ сделать это, но вы можете разделить, поп, а затем присоединиться, чтобы сделать это:

 $string = 'Hello World Again'; $string = explode(' ', $string); array_pop($string); $string = implode(' ', $string); 
 $string = "Hello World Again"; echo substr($string, 0, strrpos( $string, ' ') ); //Hello World 

Если символ не найден, ничего не отражается

Один (хороший и охлажденный) способ:

 $string = "Hello World Again"; $t1=explode(' ',$string); array_pop($t1); $t2=implode(' ',$t1); print_r($t2); 

Другие (более сложные) способы:

 $result = preg_replace('~\s+\S+$~', '', $string); 

или

 $result = implode(" ", array_slice(str_word_count($string, 1), 0, -1)); 

strripos – Найти позицию последнего вхождения подстроки без учета регистра в строке

  $string = "hello world again"; echo substr($string, 0, strripos($string, ' ')); // Hello world 
 $myString = "Hello World Again"; echo substr($myString, 0, strrpos($myString, " ")); 

Правильная реализация должна быть:

 $string = "Hello World Again"; $pos = strrpos( $string, ' '); if ($pos !== false) { echo substr($string, 0, $pos ); //Hello World } 

В противном случае, если символ не найден, он ничего не распечатает. См. Следующий случай:

 $string = "Hello World Again"; //prints nothing as : is not found and strrpos returns false. echo substr($string, 0, strrpos( $string, ':') ); 

Вы можете использовать комбинацию strrpos , которая получает позицию последнего экземпляра заданной строки внутри строки и substr, чтобы вернуть значение.

Вы можете просто использовать:

 $string = "Hello World Again"; echo preg_replace('# [^ ]*$', '', $string); 

Это будет работать независимо от того, встречается ли символ в строке или нет. Он также будет работать, если последний символ – это пробел.

 function cutTo($string, $symbol) { return substr($string, 0, strpos($string, $symbol)); }