当前位置:编程学习 > php >>

php实现关键词自动加链接

前段时间想给自己zencart站群的描述内容做下关键词连接,但是因为关键词太多,所以想写段程序自动执行这个功能,但是本人的没有认真学过php语言,所以参考网上很多资料,自己整理了一个函数
 
<?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], '<a href="'.$value[1].'" title="'.$value[0].'" rel="follow">'.$value[0].'</a>');
        }
    $count = count($array_last);
    for($i=0; $i<$count; $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.zzzyk.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 这种情况。。
 
以上,自己感觉这个功能还是太简单了点,还可以加上替换次数控制,把关键词及链接数据写入到数据库中,但是自己刚起步学习这些东西,很多地方不知道怎么做,会继续努力的。
补充:Web开发 , php ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,