php自動(dòng)給文章加關(guān)鍵詞鏈接的函數(shù)代碼
更新時(shí)間:2012年11月29日 21:13:39 投稿:mdxy-dxy
自動(dòng)給文章加關(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)鍵字,暫時(shí)替換成其他字符串
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)鍵字的字符串替換回來(lái)
foreach($tmpKwds as $tmp=>$kwd) {
$str = str_replace($tmp, $kwd, $str);
}
return $str;
}
?>
相關(guān)文章
php讀取mysql中文數(shù)據(jù)出現(xiàn)亂碼的解決方法
以下是對(duì)php讀取mysql中文數(shù)據(jù)出現(xiàn)亂碼問(wèn)題的解決方法進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08
適用于初學(xué)者的簡(jiǎn)易PHP文件上傳類(lèi)
這篇文章主要為大家分享了一個(gè)適用于初學(xué)者的簡(jiǎn)易PHP文件上傳類(lèi),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-10-10
基于PHP開(kāi)發(fā)中的安全防范知識(shí)詳解
本篇文章是對(duì)PHP開(kāi)發(fā)中的安全防范知識(shí)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP數(shù)組函數(shù)array_multisort()用法實(shí)例分析
這篇文章主要介紹了PHP數(shù)組函數(shù)array_multisort()用法,結(jié)合實(shí)例形式詳細(xì)分析了array_multisort函數(shù)的功能,定義及進(jìn)行數(shù)組排序過(guò)程中的使用技巧,需要的朋友可以參考下2016-04-04
php設(shè)計(jì)模式 Singleton(單例模式)
保證一個(gè)類(lèi)僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)2011-06-06

