2012-03-14 20 views
0

我有一些代碼,使「<a href="/page1">page1</a>替換鏈接文本只有當它是不是一個鏈接已經(在PHP)

不過,我只是想這樣做,以取代「第1頁」,如果它是不是已經一條鏈接。我如何使用php正則表達式來做同樣的事情。

  • 使用案例1 - 第1頁 - >應更改爲<a href="/page1">page1</a>
  • 使用案例2 - <a href="/page1">page1</a> - >什麼都不改變
+0

可能重複的[PHP Linkify鏈接在內容](http://stackoverflow.com/questions/5080826/php-linkify-links-in-content) – stema 2012-03-14 10:34:29

+0

是不是應該由一個簡單的reg EXP? – 2012-03-14 10:48:41

回答

1

如果你事先知道確切的鏈接文本,然後你可以檢查前後是否存在引號或尖括號。 你確定這是你應該問的問題嗎?

對於確切字符串 '第1頁':

preg_replace('#(^|[^"\'>])\s*(page1)\s*($|[^"\'<])#is', '<a href="$2">$2</a>', $s); 

這是一個壞的解決方案但實際上。你應該使用HTML解析器,因爲正則表達式對於像這樣的東西永遠不可靠。它可能在某些條件下中斷。