PHP正则表达式替换站点关键字链接后的空白解决方案
这是不恰当的知道这样的标题。具体情况是这样的:网站需要增加关键词链接功能,则需要进行正则表达式匹配和更新文章的内容,然后使用preg_replace功能。用于替换的代码如下:功能replacekeyword($ linkdefs,$content){
链接图=阵列(美元);
/ * foreach($ linkdefs达行){
链接图{ } =美元爆炸(',',为行);
}
链接图= linkdefs美元美元;
原始链接替换文本
foreach($链接图达行){
($content = preg_replace /( *)('。$行{ 0 }。)( *) /穗',$行{ 0 },$content);
}
从长到短的顺序关键字
Usort($链接图,'_sortdesc);
/ / var_dump($链接图);
tmpkwds美元=(阵列); / /存储临时替换子项
k_count = 0美元;
foreach($链接图为$i = > $行){
列表(美元第纳尔,$url)= $行;
为(J =我+ 1;J <计数($链接图);$ J++){
subkwd =美元美元美元链接图{ J } { 0 };
如果包含其他关键字,暂时用其他字符串替换,比如茶。
如果(strpos(美元第纳尔,subkwd美元)!= false){
tmpkwd美元=;
该str_replace美元=(subkwd美元,美元tmpkwd美元,第纳尔);
tmpkwds美元美元美元subkwd tmpkwd } = {;
}
}
文本链接/替换
要求(mleinc。' / /全局配置。配置。php);
th_num美元=美元{ 'keyword_num配置'}; / /关键字替换数量
($content = preg_replace /('。$行{ 0 }。) /穗','。$该,内容th_num美元,美元,美元计数); / /所有的比赛将被取代
k_count美元=美元计数;
}
子关键字字符串代替替换
foreach(tmpkwds美元美元美元TMP = > KWD){
$content = str_replace(美元美元美元第纳尔,TMP,内容);
}
结果=阵列(美元美元美元的内容,k_count);
返回$结果;
unset($结果);
unset($ TMP);
unset($ tmpkwds);
unset($ KWD);
撤消(美元计算);
Unset ($config);
unset($链接图);
unset($ linkdefs);
unset($ tmpkwd);
设置(内容);
unset($ th_num);
撤消(合排);
unset($ k_count);
}
程序从因特网上搜索,然后本地测试正常。本地环境是PHP 5.3,服务是5.2。上传到互联网后,它显示空白。PHP版本最初是作为妊娠之间差异EREG后来上网,发现网友调整就行了,大pcre.backtrack_limit和pcre.recursion_limit说我试了,果然,这似乎是一个配置的问题,但总的来说,PHP的默认配置应该是没有问题的,和我自己写的程序是不够的!