在PHP中添加指向span标记内特定单词的链接

时间:2011-01-11 14:42:31

标签: php regex preg-replace preg-match highlighting

我有一个单词列表,我想添加一个链接,我可以使用preg_match_all和preg_replace相当容易地做到这一点:

$str = "<span class=\"cz\">Dám si jedno pivo prosím.</span> = I'll have a beer please.";

preg_match_all('/[a-zťúůýžáčďéěíňóřš]+/i',$str,$matches);
$matches = array_unique($matches[0]);

foreach ($matches as $match) {
    if(!empty($words[$match])) {
        $str = preg_replace("/(^|[^\w]){1}(".preg_quote($match,"/").")($|[^\w]){1}/i", '\\1<a href="#">\\2</a>\\3', $str);
    }
}

echo $str;

我想要做的是将链接限制在span标记内。

我的大脑都是正则表达式,所以任何帮助都会受到赞赏!谢谢!

达伦。

2 个答案:

答案 0 :(得分:0)

/( *<SPAN*>)([^<]*)(<\/SPAN>)/i

我认为这样的事情应该有效,但如果你的SPAN中有其他标签就会中断。我建议你改用DOM函数。

答案 1 :(得分:0)

preg_match_all('/[a-zťúůýžáčďéěíňóřš]+(?=\s*?</span>)/i',$str,$matches);