Удаление символов до и включая определенный символ
У меня есть строка <?php $linktitle = get_the_title();?>
, в которой хранится заголовок сообщения. Строка имеет такое название:
Если ваш Wi-Fi ужасен, проверьте свой маршрутизатор - The New York Times
Как я могу удалить все до и после –
? Я использую: <?php echo strstr($linktitle, '–'); ?>
и выводит:
- Нью-Йорк Таймс
Ответы
Ответ 1
Попробуйте использовать preg_replace
:
preg_replace("/.+?( –)/", '', $linktitle)
Если вы хотите удалить пробел после -
тоже:
preg_replace("/.+?( –)\s*/", '', $linktitle)
Это использует регулярное выражение для соответствия шаблону, определенному любым символом, кроме новой строки 1 или более раз (.+
), пока не встретит (?
) пробел, за которым следует тире (( –)
), затем пробел (\s
) 0 или более раз (*
). Затем Preg_replace заменяет сопоставленный шаблон пустой строкой.
Ответ 2
Надеюсь, вам нужен вывод, например
- Нью-Йорк Таймс
из
Если ваш Wi-Fi ужасен, проверьте свой маршрутизатор - The New York Times
поэтому попробуйте использовать, это может вам помочь,
$linktitle = "If Your Wi-Fi Is Terrible, Check Your Router – The New York Times";
echo substr($linktitle,strrpos($linktitle,'–'));
ИЗМЕНИТЬ:
Если вам нужно также удалить "–"
. используйте это,
$linktitle = "If Your Wi-Fi Is Terrible, Check Your Router – The New York Times";
$specCharLen = strlen(htmlentities("–"));
echo substr($linktitle,strrpos($linktitle,'–')+$specCharLen);