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 相关文章推荐
关于PHP中的Class的几点个人看法
Oct 09 PHP
Wordpress php 分页代码
Oct 21 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
Nov 01 PHP
php通用防注入程序 推荐
Feb 26 PHP
PHP源码之explode使用说明
Aug 05 PHP
具有时效性的php加密解密函数代码
Jun 19 PHP
destoon实现商铺管理主页设置增加新菜单的方法
Jun 26 PHP
PHP将HTML转换成文本的实现代码
Jan 21 PHP
PHP SOCKET编程详解
May 22 PHP
PHP自动生成表单代码分享
Jun 19 PHP
php基础教程
Aug 26 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
Jan 07 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
PHP实现字符串的全排列详解
2019/04/24 PHP
javascript学习笔记(十八) 获得页面中的元素代码
2012/06/20 Javascript
JavaScript调用ajax获取文本文件内容实现代码
2014/03/28 Javascript
jquery处理页面弹出层查询数据等待操作实例
2015/03/25 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)
2016/02/23 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
对vue生命周期的深入理解
2020/12/03 Vue.js
Python中__call__用法实例
2014/08/29 Python
python字典get()方法用法分析
2015/04/17 Python
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
浅谈python 线程池threadpool之实现
2017/11/17 Python
python机器学习库scikit-learn:SVR的基本应用
2019/06/26 Python
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
世界上最大的在线旅行社新加坡网站:Expedia新加坡
2016/08/25 全球购物
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
英国健身专家:WIT Fitness
2021/02/09 全球购物
运动会广播稿60字
2014/01/15 职场文书
荷叶圆圆教学反思
2014/02/01 职场文书
奠基仪式主持词
2014/03/20 职场文书
文明村创建实施方案
2014/03/27 职场文书
应聘教师求职信
2014/07/19 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
教师节主持词开场白
2015/05/29 职场文书
2015年教师国培感言
2015/08/01 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书
世界文化遗产导游词
2019/08/07 职场文书
毕业生自荐求职信书写的技巧
2019/08/26 职场文书