php给html文本关键字加超链接,求大神指点。
给关键字加超链接我们一般会用正则去替换。
但是问题来了,图片里面的alt里面有关键字也被替换成有链接的了。还有原本有超链接的文本也被替换了。
如电脑的使用,关键字有电脑二字,这条本不该被替换的,结果也被替换了。
如,关键字有电脑二字,这条本不该替换,结果电脑二字也被替换成有超链接的内容了。
电脑可以提高工作效率
注:希望“电脑”二字自动加超链接,如变成电脑可以提高工作效率
$s =<<< TXT<br /><p>电脑可以提高工作效率</p> 注:希望“电脑”二字自动加超链接,如变成<p><a href="ss.html">电脑</a>可以提高工作效率</p> <br /><a href="ss.html">电脑的使用</a> 注:不希望“电脑”二字加超链接<br /><img alt="电脑配件" src="aa.jpg" /> 注:不希望电脑二字加超链接<br />TXT;<br /><br />$p = '/((?:^<br><font color='#FF8000'>------解决方案--------------------</font><br>>).*?)(电脑)([^<]*(?:<(?!\/a)<br><font color='#FF8000'>------解决方案--------------------</font><br>$))/is';<br />echo preg_replace($p, '$1【$2】$3', $s);<br />
【电脑】可以提高工作效率
注:希望“【电脑】”二字自动加超链接,如变成电脑可以提高工作效率