php自动给文章加关键词链接的函数代码

 更新时间:2012年11月29日 21:13:39   投稿:mdxy-dxy  
自动给文章加关键词链接的php函数代码,需要的朋友可以参考下

复制代码 代码如下:

<?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];
//如果包含其他关键字,暂时替换成其他字符串
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);
}

//把代替子关键字的字符串替换回来
foreach($tmpKwds as $tmp=>$kwd) {
$str = str_replace($tmp, $kwd, $str);
}
return $str;
}
?>

相关文章

  • PHP实现Soap通讯的方法

    PHP实现Soap通讯的方法

    这篇文章主要介绍了PHP实现Soap通讯的方法,是web service的一个典型应用,需要的朋友可以参考下
    2014-11-11
  • PHP分页显示制作详细讲解

    PHP分页显示制作详细讲解

    PHP分页显示制作详细讲解...
    2006-12-12
  • Apache+PHP+MySQL搭建PHP开发环境图文教程

    Apache+PHP+MySQL搭建PHP开发环境图文教程

    这篇文章主要介绍了Apache+PHP+MySQL搭建PHP开发环境图文教程,文中通过图文流程介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 一致性哈希算法以及其PHP实现详细解析

    一致性哈希算法以及其PHP实现详细解析

    以下是对用PHP实现一致性哈希算法进行了详细的介绍,需要的朋友可以过来参考下
    2013-08-08
  • php之static静态属性与静态方法实例分析

    php之static静态属性与静态方法实例分析

    这篇文章主要介绍了php之static静态属性与静态方法,以实例形式较为详细的分析了php静态属性与静态方法的概念与相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • PHP PDO和消息队列的个人理解与应用实例分析

    PHP PDO和消息队列的个人理解与应用实例分析

    这篇文章主要介绍了PHP PDO和消息队列的个人理解与应用,结合实例形式分析了PHP pdo与消息队列相关配置、使用方法及操作注意事项,需要的朋友可以参考下
    2019-11-11
  • php随机显示指定文件夹下图片的方法

    php随机显示指定文件夹下图片的方法

    这篇文章主要介绍了php随机显示指定文件夹下图片的方法,涉及array_rand随机数组操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • PHP单例模式Singleton Pattern的原理与实现介绍

    PHP单例模式Singleton Pattern的原理与实现介绍

    单例就是单实例的意思,即在系统全局,一个类只创建一个对象,并且在系统全局都可以访问这个对象而不用重新创建。本文将通过示例为大家详细讲解Java单例模式的使用,需要的可以参考一下
    2023-03-03
  • 详解PHP渗透测试文件包含漏洞与利用

    详解PHP渗透测试文件包含漏洞与利用

    这篇文章主要介绍了PHP渗透测试文件包含漏洞与利用,文件漏洞是一个非常常见的漏洞,这种类型的漏洞虽然有些难以利用,但一旦利用成功就会造成非常危险的后果。本文将详细讲讲PHP反序列化漏洞的原理及示例,感兴趣的可以了解一下
    2022-07-07
  • PHP实现的多进程控制demo示例

    PHP实现的多进程控制demo示例

    这篇文章主要介绍了PHP实现的多进程控制demo,涉及php信号处理与进程控制相关操作技巧,需要的朋友可以参考下
    2019-07-07

最新评论