关于关键词变红引出的问题 需要将$content中的关键词全部变红。由于前面已经设定了将$content中的URL转换成<a href="..."></a>的链接形式,当URL中含有关键词的时候后面语句就会把链接内部的关键词也改变成<font color=red>的形式,导致链接地址发生改变。请问如何避免该问题? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这样加的链接就错误了,因为是自动寻找URL的 function replace($str,$key,$sstr,$estr){ $str = str_replace($key,"<font color=red>{$key}</font>",$str); return $sstr.$str.$estr;}$key="eee";$content = "http://eee.eee.cv/xml.php<a href='http://eee.eee.cv/xml.php'>http://eee.<b>eee</b>.cv/xml.php</a>http://eee.eee.cv/xml.php";$content = preg_replace('/(<[^>]+>)*([^<>]+)(<[^>]+>)*/ies',"replace('\\2','{$key}','\\1','\\3')",$content);echo $content; 结果为:http://<font color=red>eee</font>.<font color=red>eee</font>.cv/xml.php<a href='http://eee.eee.cv/xml.php'>http://<font color=red>eee</font>.<b><font color=red>eee</font></b>.cv/xml.php</a>http://<font color=red>eee</font>.<font color=red>eee</font>.cv/xml.php <a href="#">123456</a>假设34是变红关键词,<a href="#">12<font color="red">34</font>56</a>这样子不会导致链接变化啊?链接还是正常的,就是中间有了颜色如果这种情况你不希望发生替换,可以将变红的关键词跟超链关键词比对,包含在里面的删掉,再去替换变红关键词当然也可以正则把超链提取出来再比对 是的,自动识别URL,最好先存入数据库里面的时候就自动识别,否则每次读取都识别一次,很耗时。替换用JavaScript啊,别用PHP,替换的时候加样式 <span class="kw"></span> 如何正确利用PHP cURL函数传递多维数组? php中<<<是什么符号 我是初学者 关于数据库函数的问题 乱码问题 自学PHP入门到精通要买什么书看啊? 字符串分割问题 关于一段分页面的程序,有详细注释,帮看下错误 求www.cndev.net 和http://bbs.21youth.com/两网站的论坛实现方法? 气死我了,本姑娘以后再也不来PHP版回答问题了 请大家推荐见过的好的论坛 帮我看看图片怎么显示不出???? 求一正则
这样加的链接就错误了,因为是自动寻找URL的
function replace($str,$key,$sstr,$estr){
$str = str_replace($key,"<font color=red>{$key}</font>",$str);
return $sstr.$str.$estr;
}
$key="eee";
$content = "http://eee.eee.cv/xml.php<a href='http://eee.eee.cv/xml.php'>http://eee.<b>eee</b>.cv/xml.php</a>http://eee.eee.cv/xml.php";
$content = preg_replace('/(<[^>]+>)*([^<>]+)(<[^>]+>)*/ies',"replace('\\2','{$key}','\\1','\\3')",$content);
echo $content;
如果这种情况你不希望发生替换,可以将变红的关键词跟超链关键词比对,包含在里面的删掉,再去替换变红关键词当然也可以正则把超链提取出来再比对
是的,自动识别URL,最好先存入数据库里面的时候就自动识别,否则每次读取都识别一次,很耗时。
替换用JavaScript啊,别用PHP,替换的时候加样式 <span class="kw"></span>