php自動給文章加關(guān)鍵詞鏈接的函數(shù)代碼
更新時間:2012年11月29日 21:13:39 投稿:mdxy-dxy
自動給文章加關(guān)鍵詞鏈接的php函數(shù)代碼,需要的朋友可以參考下
復(fù)制代碼 代碼如下:
<?php
function _sortDesc($a, $b) {
return (strlen($a[0]) < strlen($b[0])) ? 1 : -1;
}
function keylink($str,$link,$count=1)
{
$linkDefs = $link;
$linkMap = array();
foreach($linkDefs as $row) {
$linkMap[] = explode(',', $row);
}
foreach($linkMap as $row) {
$str = preg_replace('/(<a.*?>\s*)('.$row[0].')(\s*<\/a>)/sui', '${2}', $str);
}
usort($linkMap, '_sortDesc');
$tmpKwds = array();
foreach($linkMap as $i=>$row) {
list($kwd, $url) = $row;
for($j=$i+1; $j<count($linkMap); $j++) {
$subKwd = $linkMap[$j][0];
//如果包含其他關(guān)鍵字,暫時替換成其他字符串
if(strpos($kwd, $subKwd) !== false) {
$tmpKwd = '{'.md5($subKwd).'}';
$kwd = str_replace($subKwd, $tmpKwd, $kwd);
$tmpKwds[$tmpKwd] = $subKwd;
}
}
//把文字替換成鏈接
$str = preg_replace('/('.$row[0].')/sui', '<a href="'.$row[1].'" target="_blank">'.$kwd.'</a>', $str, $count);
}
//把代替子關(guān)鍵字的字符串替換回來
foreach($tmpKwds as $tmp=>$kwd) {
$str = str_replace($tmp, $kwd, $str);
}
return $str;
}
?>
相關(guān)文章
php讀取mysql中文數(shù)據(jù)出現(xiàn)亂碼的解決方法
以下是對php讀取mysql中文數(shù)據(jù)出現(xiàn)亂碼問題的解決方法進行了介紹,需要的朋友可以過來參考下2013-08-08
PHP數(shù)組函數(shù)array_multisort()用法實例分析
這篇文章主要介紹了PHP數(shù)組函數(shù)array_multisort()用法,結(jié)合實例形式詳細分析了array_multisort函數(shù)的功能,定義及進行數(shù)組排序過程中的使用技巧,需要的朋友可以參考下2016-04-04

