前段时间想给自己zencart站群的描述内容做下关键词连接,但是因为关键词太多,所以想写段程序自动执行这个功能,但是本人的没有认真学过php语言,所以参考网上很多资料,自己整理了一个函数
function zen_key_replace($str){
$array_first = array(
array('2012 New UGG Boots','link1.html'),
array('black ugg boots','link2.html'),
array('cheap ugg boots','link3.html'),
array('cheapest ugg boots','link4.html'),
array('discount ugg boots','link5.html'),
array('girls ugg boots','link6.html'),
array('grey ugg boots','link7.html'),
array('ugg boots','link8.html')
);
$array_last = array();
foreach($array_first as $key=>$value){
$array_last[$key] = array('TFXS00'.$key, $value[0], ''.$value[0].'');
}
$count = count($array_last);
for($i=0; $i
for($j=$count-1; $j>$i; $j--){
//如果后一个元素长度大于前一个则调换位置
if(strlen($array_last[$j][1]) > strlen($array_last[$j-1][1])){
$tmp = $array_last[$j];
$array_last[$j] = $array_last[$j-1];
$array_last[$j-1] = $tmp;
}
}
}
$keys=$array_last;
foreach($keys as $nkeys){
$str= str_ireplace($nkeys[1], $nkeys[0], $str);
}
foreach($keys as $nkeys){
$str= str_ireplace($nkeys[0], $nkeys[2], $str);
}
return $str;
}
示例: www.2cto.com
$str ="今天是2012年1月9号,ugg boots网站,seo就是搜索引擎优化了girls ugg boots,css+div,Photoshop,Flash,HTML,CSS,Dreamweaver,Fireworks,ASP,PHP,JSP,ASP.NET";
echo zen_key_replace(stripslashes($str));//在输出文章内容的地方调用这个函数$str为文章内容
?>
先是一个数组排序,关键词长度长的优先,因为如果相关的短关键词在前面,则长的关键词不会被替换到,如果ugg boot 先替换过了 那么ugg boot sale 就已经变成TFXS008 sale 就不会被成功替换
然后是一个替换,之所以先替换一遍成TFXS001 是为了在第二次替换的时候不会因为 类似ugg boots 这个常出现的关键词而进行多次替换。。类似2012 New UGG Boots 这种情况。。
以上,自己感觉这个功能还是太简单了点,还可以加上替换次数控制,把关键词及链接数据写入到数据库中,但是自己刚起步学习这些东西,很多地方不知道怎么做,会继续努力的。