2012-03-14 39 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解析器,因为正则表达式对于像这样的东西永远不可靠。它可能在某些条件下中断。