我有一个字符串<?php $linktitle = get_the_title();?>
,它存储了文章的标题。该字符串的标题如下:
如果您的Wi-Fi很差,请检查您的路由器-纽约时报
如何删除包括“–”在内的所有内容?我正在使用:<?php echo strstr($linktitle, '–'); ?>
,并输出以下结果:
– 纽约时报
尝试使用preg_replace
函数:
preg_replace("/.+?( –)/", '', $linktitle)
如果您想要删除 -
后面的空格:
preg_replace("/.+?( –)\s*/", '', $linktitle)
这使用正则表达式来匹配一个由任何字符除了换行符1次或多次定义的模式 (.+
),直到它遇到一个空格后跟着破折号 (( –)
),然后是0个或多个空格 (\s*
). preg_replace然后用一个空字符串替换匹配的模式。
我希望您需要的输出结果是:
——《纽约时报》
从以下内容中得到:
如果你的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);
array_pop(explode(' - ', $linktitle))
- caw