程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php實現關鍵詞自動加鏈接

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.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 這種情況。。
 
以上,自己感覺這個功能還是太簡單了點,還可以加上替換次數控制,把關鍵詞及鏈接數據寫入到數據庫中,但是自己剛起步學習這些東西,很多地方不知道怎麼做,會繼續努力的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved