我需要在現場替換我的文本中的名稱。但文本中的名稱只需要替換,而不是標籤中。如何更換隻有一次,沒有標籤?
例如:
<img src="" title="Justin Bieber" /> bla bla bla bla Justin Bieber bla bla bla Justin Bieber bla bla bla bla
要這樣:
<img src="" title="Justin Bieber" /> bla bla bla bla <a href="http://en.wikipedia.org/wiki/Justin_Bieber">Justin Bieber</a> bla bla bla Justin Bieber bla bla bla bla
我找到了答案:
$text = '<img src="" title="Justin Bieber" /> bla bla bla bla Justin Bieber bla bla bla Justin Bieber bla bla bla bla';
$text = preg_replace('/Justin Bieber(?![^<>]*+>)/i', '<a href="http://en.wikipedia.org/wiki/Justin_Bieber">Justin Bieber</a>', $text, 1);
只有一個,沒有圖像標記。
-1。不要使用REGEX解析HTML。它會中斷。如果他有''? – 2011-12-30 09:47:33
@Truth Yep你的權利。如果HTML格式良好,則可以使用SimpleXML來迭代DOM獲取文本,替換並重新創建html。 – dotoree 2011-12-30 10:11:52