PHP用href链接替换字符串中的关键字

时间:2011-09-15 06:37:52

标签: php preg-match str-replace

我今天早上“很厚”所以请原谅这个简单的问题 - 我有一系列关键字,例如: array('keyword1','keyword2'....)我有一串文字 - (有点像博客内容的长度,即不只是几个字,但可能是200-800个单词)搜索字符串中关键字的最佳方法是什么,并替换它们带有href链接。因此,在文本“关键字1”(作为纯文本)将变为<a href='apage'>keyword1</a>等等。

看到说这是很厚的。

谢谢你。

2 个答案:

答案 0 :(得分:3)

典型的preg_replace案例:

$text = "There is some text keyword1 and lorem ipsum keyword2.";
$keywords = array('keyword1', 'keyword2');

$regex = '/('.implode('|', $keywords).')/i';

// You might want to make the replacement string more dependent on the
// keyword matched, but you 'll have to tell us more about it
$output = preg_replace($regex, '<a href="apage">\\1</a>', $text);

print_r($output);

<强> See it in action

现在上面没有做出非常“智能”的替换,因为href不是匹配关键字的函数,而在实践中你可能想要这样做。在此处查看preg_replace_callback以获得更多灵活性,或者编辑问题并提供有关目标的更多信息。

答案 1 :(得分:0)

为什么你会使用正则表达式而不仅仅是str_replace()!正则表达式有效,但它使这样一个非常简单的问题复杂化。