2015-10-13 113 views
10

我有一個字符串<?php $linktitle = get_the_title();?>,用於存儲帖子的標題。該字符串有這樣一個標題:刪除包含特定符號之前的字符

如果你的Wi-Fi是可怕的,檢查您的路由器 - 前紐約時報

如何刪除一切,包括?我使用的是:<?php echo strstr($linktitle, '&#8211;'); ?>它輸出:

- 紐約時報

+6

這個問題正在[上的元討論](http://meta.stackoverflow.com/q/309420/3367144) – kdbanman

+0

'array_pop(爆炸( ' - ',$ linktitle))' – caw

回答

10

嘗試使用preg_replace

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

如果你想刪除-太后的空白:

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

這使用regul ar表達式匹配由除換行符1或更多次(.+)之外的任何字符定義的模式,直到遇到(?)空格後加破折號((–)),然後是空格(\s)0次或更多次(*)。 Preg_replace然後用空字符串替換匹配的模式。

+0

'$ links = preg_replace(「/.+?(–)/」,'',$ linktitle);'謝謝! –

+0

啊 - 長衝刺。真高興你做到了! – Dencker

+0

使用正則表達式有點矯枉過正。我建議使用Vishnu的回答。 – Talus

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); 
+0

需要刪除短劃線。 –