0

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

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

然后使用php生成这样的链接:

一些文字,一些文字 <a href="http://an-external-site.com/keyword">关键字</a> 一些文字和一些文字

那么,该怎么做呢?例如 preg_replace()

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

一些文字,一些文字||关键字||MS/关键字|| 一些文字和一些文字

这将是:

一些文字,一些文字 <a href="http://mysite.com/keyword">关键字</a> 一些文字和一些文字

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

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

谢谢。

4

1 回答 1

1

我建议使用类似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);
于 2012-04-26T13:13:58.297 回答