preg 替换以生成链接


preg replace to generate a link

>我正在开发一个简单的cms,在某些情况下,我想在数据库中存储一个可能包含一些链接的段落,但我不想在数据库中存储html代码,我希望它如下:

一些

文字,一些文字 ||关键词||http://an-external-site.com/keyword||一些文本和一些文本

然后使用 PHP 生成如下链接:

一些文本

,一些文本关键字一些文本和一些文本

那么,怎么做呢?以preg_replace()为例

有没有办法使用预定义的变量让 url 指向我网站中的内部页面,例如

一些

文字,一些文字 ||关键词||质谱/关键字||一些文本和一些文本

这将是:

一些文本

,一些文本关键字一些文本和一些文本

其中 MS 指的是我的网站,例如 http://mysite.com/

因此,在这里,php 函数获取模式,然后决定是简单地使用示例 1 中的完整 url,还是用等于 http://mysite.com/的预定义变量替换 MS

谢谢。

我建议使用一些像bbcode这样的类来直接获取项目中的非html代码。

如果你仍然想使用正则表达式,你可以使用这样的东西:

$pattern = '=^(.*)<a(.*)href'="?('S+)"([^>]*)>(.*)</a>(.*)$=msi';
while (preg_match($pattern, $row, $txt))
{
  /* $txt[3] holds the link. */
  echo $txt[3]."'n";
  $row = $txt[1]." here was a link ".$txt[6];
}
/* print $row */
print "<br>".nl2br($row);