删除特定符号前后的字符

时间:2015-10-13 08:03:16

标签: php string

我有一个字符串<?php $linktitle = get_the_title();?>,用于存储帖子的标题。该字符串的标题如下:

  

如果您的Wi-Fi非常糟糕,请检查您的路由器 - 纽约时报

如何删除之前的所有内容?我正在使用:<?php echo strstr($linktitle, '&#8211;'); ?>并输出:

  

- 纽约时报

2 个答案:

答案 0 :(得分:11)

尝试使用preg_replace

preg_replace("/.+?( –)/", '', $linktitle)

如果你想删除-之后的空格:

preg_replace("/.+?( –)\s*/", '', $linktitle)

这使用正则表达式来匹配除换行符之外的任何字符定义的模式1次或更多次(.+),直到它遇到(?)空格后跟短划线({{1} }),然后是一个空格(( –))0次或更多次(\s)。然后,Preg_replace用空字符串替换匹配的模式。

答案 1 :(得分:3)

我希望您需要输出

  

- 纽约时报

来自

  

如果您的Wi-Fi非常糟糕,请检查您的路由器 - 纽约时报

所以尽量使用它可能对你有帮助,

  $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);