Удаление символов до и включая определенный символ

У меня есть строка <?php $linktitle = get_the_title();?>, в которой хранится заголовок сообщения. Строка имеет такое название:

Если ваш Wi-Fi ужасен, проверьте свой маршрутизатор - The New York Times

Как я могу удалить все до и после ? Я использую: <?php echo strstr($linktitle, '&#8211;'); ?> и выводит:

- Нью-Йорк Таймс

Ответ 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);