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 相关文章推荐
兼容PHP5的PHP目录管理函数库
Jul 10 PHP
很好用的PHP数据库类
May 27 PHP
PHP strtok()函数的优点分析
Mar 02 PHP
php中全局变量global的使用演示代码
May 18 PHP
解析PHP工厂模式的好处
Jun 18 PHP
ThinkPHP3.1之D方法实例详解
Jun 20 PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 PHP
PHP-CGI远程代码执行漏洞分析与防范
May 07 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
PHP实现简单登录界面
Oct 23 PHP
php将字符串转换为数组实例讲解
May 05 PHP
goto语法在PHP中的使用教程
Sep 17 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
php记录代码执行时间(实现代码)
2013/07/05 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
php版微信公众号自定义分享内容实现方法
2016/09/22 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
javascript 时间比较实现代码
2009/10/28 Javascript
JavaScript 序列化对象实现代码
2009/12/18 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
2014/02/07 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
jQuery检测滚动条是否到达底部
2015/12/15 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
2016/09/08 Javascript
微信小程序 教程之wxapp视图容器 swiper
2016/10/19 Javascript
ES6概念 Symbol toString()方法
2016/12/25 Javascript
JS变量及其作用域
2017/03/29 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
vue项目中v-model父子组件通信的实现详解
2017/12/10 Javascript
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
vue axios重复点击取消上一次请求封装的方法
2019/06/19 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
Python Web框架Pylons中使用MongoDB的例子
2013/12/03 Python
python3写爬取B站视频弹幕功能
2017/12/22 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
Python OrderedDict的使用案例解析
2019/10/25 Python
Pytorch 多块GPU的使用详解
2019/12/31 Python
HTML5 canvas画图并保存成图片的jcanvas插件
2014/01/17 HTML / CSS
Monnier Frères美国官网:法国知名奢侈品网站
2016/11/22 全球购物
自我评价怎么写正确呢?
2013/12/02 职场文书
日语求职信范文
2013/12/17 职场文书
分公司任命书
2014/06/06 职场文书
业务员年终工作总结2015
2015/05/28 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
大学生支教感言
2015/08/01 职场文书
CSS3实现的文字弹出特效
2021/04/16 HTML / CSS