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


Posted in PHP onNovember 29, 2012
<?php 
$link = array( 
'百度,http://www.baidu.com/', 
'服务器软件,http://s.3water.com/', 
'三水点靠木,https://3water.com/', 
); 
$str = '在百度中搜索服务器软件就可以到三水点靠木提供的软件<br /> 
夏季不再穿长筒袜近年成为一种时尚,甚至到了秋天也不例外。<br /> 
专家提出,其实这种时尚不利于美腿。据悉,久坐久站缺少运动等原因易导致静脉曲张,尤其是长期站立工作的人,容易引起下肢静脉本身扩张、延长或静脉瓣膜损坏以至发病。具体表现为腿部肿胀,下肢静脉犹如蚯蚓状弯曲或结节成团,皮肤发紫,特别是踝和小腿内侧更为严重。<br /> 
专家指出,长期站立工作的人或多或少都有一些下肢静脉曲张的表现,只是轻重程度不一样。下肢静脉曲张是一种治疗起来比较麻烦的疾病,严重的需要手术,所以最好的方法还是防患于未然,在症状尚不明显的时候,就采取防范措施,穿长筒弹力袜就是一种很好的方法,可帮助血液进入较大且较深处的静脉。<br /> 
保持理想体重,可减少静脉曲张的机会;避免紧身衣物,穿医用弹力袜,以免使血液聚积在腿部;小心食用避孕药,某些避孕药可能引起这种问题。'; 
$out=keylink($str,$link,1); //$str 原始字符 $link,替换链接数组, 3替换次数 
echo $out; 
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 相关文章推荐
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
Dec 06 PHP
Mysql和网页显示乱码解决方法集锦
Mar 27 PHP
PHP 表单提交给自己
Jul 24 PHP
php设计模式 Delegation(委托模式)
Jun 26 PHP
PHP使用mysqldump命令导出数据库
Apr 14 PHP
php获取Google机器人访问足迹的方法
Apr 15 PHP
PHP开启opcache提升代码性能
Apr 26 PHP
优化WordPress中文章与评论的时间显示
Jan 12 PHP
php封装的验证码工具类完整实例
Oct 19 PHP
PHP带节点操作的无限分类实现方法详解
Nov 09 PHP
php监测数据是否成功插入到Mysql数据库的方法
Nov 25 PHP
PHP用swoole+websocket和redis实现web一对一聊天
Nov 05 PHP
PHP文章按日期(月日)SQL归档语句
Nov 29 #PHP
PHP以及MYSQL日期比较方法
Nov 29 #PHP
有道搜索和IP138的IP的API接口(PHP应用)
Nov 29 #PHP
PHP提示Notice: Undefined variable的解决办法
Nov 24 #PHP
php如何调用webservice应用介绍
Nov 24 #PHP
PHP读取PDF内容配合Xpdf的使用
Nov 24 #PHP
PHP得到mssql的存储过程的输出参数功能实现
Nov 23 #PHP
You might like
php5 mysql分页实例代码
2008/04/10 PHP
PHP 字符串 小常识
2009/06/05 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
javascript add event remove event
2008/04/07 Javascript
jquery 防止表单重复提交代码
2010/01/21 Javascript
ASP.NET jQuery 实例4(复制TextBox的文本到本地剪贴板上)
2012/01/13 Javascript
IE的fireEvent方法概述及应用
2013/02/22 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
js实现点击向下展开的下拉菜单效果代码
2015/09/01 Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
2016/12/14 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
分析javascript原型及原型链
2018/03/18 Javascript
VUE项目中加载已保存的笔记实例方法
2019/09/14 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
关于Node.js中频繁修改代码重启服务器的问题
2020/10/15 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
Python表示矩阵的方法分析
2017/05/26 Python
Python 快速实现CLI 应用程序的脚手架
2017/12/05 Python
Python中使用双下划线防止类属性被覆盖问题
2019/06/27 Python
numpy np.newaxis 的实用分享
2019/11/30 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
Python调用SMTP服务自动发送Email的实现步骤
2021/02/07 Python
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
英语专业学生个人求职信
2014/01/28 职场文书
工伤赔偿协议书
2014/04/15 职场文书
工作推荐信范文
2014/05/10 职场文书
学生吸烟检讨书
2014/09/14 职场文书
全家福照片寄语怎么写?
2019/04/02 职场文书
入党转正申请书范文
2019/05/20 职场文书
2019企业给员工的慰问信
2019/06/24 职场文书
pytorch常用数据类型所占字节数对照表一览
2021/05/17 Python
CSS实现单选折叠菜单功能
2021/11/01 HTML / CSS
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android