如何实现高效快速替换文章中的关键词? 不要用现有函数来替换。将关键词表长驻内存,自己写一个for循环来做这个替换会快很多。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当然str_replace的参数可以使用数组。我相信既然允许数组,php的开发者就肯定对批量替换做了优化。不知道你现在是不是用的这种方法更新。如果你用的是多次str_replace,可以先改为一次replace(数组)的方式试试。 我的意思是你试试把关键词表写成一个文件不要放进数据库。$src=array('一个地址','两个地址','三个地址',...........);$des=array('<a href="">一个地址</a>','<a href="">两个地址</a>','<a href="">三个地址</a>',...........);假设php对替换函数有优化的话就直接用就可以了。$str=str_replace($src,$des,$str);如果速度还是不理想可以考虑自己写替换函数。 字符串替换算法网上很多,可去google搜索。这里写个简单的。假设有关键字 abc,aefae,aefaw,b......,写成类似下列格式$key=array('a'=>array('bc'=>1,'efae'=>1,'efaw'=>1),'b'=>array(..........));$new_str='';for($i=0;$i<str_len($str);$i++){if(!isset($key[$str[$i]])) $new_str.=$str[$i];else{ 深入判断是否有匹配项,有则$new_str.=匹配顶,并$i+=替换字符数}}如果关键字分组后还是特别多,可以多加几层,并用hash编码优化查询。 我有个PHP的播放播放器 怎么也修改不了编码 PHP时间显示问题 php如何连接远程my sql 怎么一调用函数返回的数组就出错 急!!100分求网站推广软件和注册码!在线等 用shtml生成静态新闻 对象序列化的问题。 asp->linux.php问题? 一个关于json_decode()后显示为空的问题 新手请教一个问题,如何一行一行读取并删除txt文件的激活码 乱码问题,好怪的问题,大家帮忙看看了.. post数据出现乱码,请帮忙看下呢
'一个地址',
'两个地址',
'三个地址',
...........
);
$des=array(
'<a href="">一个地址</a>',
'<a href="">两个地址</a>',
'<a href="">三个地址</a>',
...........
);假设php对替换函数有优化的话就直接用就可以了。
$str=str_replace($src,$des,$str);如果速度还是不理想可以考虑自己写替换函数。
'a'=>array('bc'=>1,'efae'=>1,'efaw'=>1),
'b'=>array(..........)
);$new_str='';
for($i=0;$i<str_len($str);$i++){
if(!isset($key[$str[$i]])) $new_str.=$str[$i];
else{
深入判断是否有匹配项,有则$new_str.=匹配顶,并$i+=替换字符数
}
}如果关键字分组后还是特别多,可以多加几层,并用hash编码优化查询。