Как удалить часть строки после последней запятой в PHP


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

Строка : "this is a post, number 1, date 23, month 04, year 2012"
Ожидаемый: "this is a post, number 1, date 23, month 04"

Author: hakre, 2012-06-02

3 answers

substr и strrpos было бы полезно

$until = substr($string, 0, strrpos($string.",", ","));

Примечание: отредактировано на основе комментариев ниже

 8
Author: mario, 2016-07-29 08:24:51

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

Это можно сформулировать как регулярное выражение, и этот шаблон можно заменить с помощью preg_replace с пустой строкой:

$until = preg_replace('/,[^,]*$/', '', $string);

Это вариант ответа Марио, который работает и в том случае, если в строке также нет запятой.

 4
Author: hakre, 2017-05-23 12:13:47
$tokens = explode(':', $string);      // split string on :
array_pop($tokens);                   // get rid of last element
$newString = implode(':', $tokens);   // wrap back

 1
Author: onlinewebsite, 2013-12-13 23:49:36