我有一个字符串<?php $linktitle = get_the_title();?>
,用于存储帖子的标题。该字符串的标题如下:
如果您的Wi-Fi非常糟糕,请检查您的路由器 - 纽约时报
如何删除–
之前的所有内容?我正在使用:<?php echo strstr($linktitle, '–'); ?>
并输出:
- 纽约时报
答案 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);