我正在开发一个简单的cms,在某些情况下我想在数据库中存储一个段落,其中可能包含一些链接,但我不想将html代码存储在数据库中,我希望它如下:
一些文字,一些文字||关键字|| http://an-external-site.com/keyword ||一些文字和一些文字
然后使用php生成如下链接:
一些文字,一些文字< a href =“http://an-external-site.com/keyword”>关键字< / a>一些文字和一些文字
那么,该怎么做?例如,使用preg_replace()
是否可以使用预定义变量将网址指向我网站中的内部网页,例如
一些文字,一些文字||关键字|| MS / keyword ||一些文字和一些文字
将是:
一些文字,一些文字< a href =“http://mysite.com/keyword”>关键字< / a>一些文字和一些文字
其中MS引用我的网站,例如http://mysite.com/
所以这里php函数获取模式,然后决定是否只使用示例1中的完整URL,或者用等于http://mysite.com/的预定义变量替换MS
感谢。
答案 0 :(得分: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);