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中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
Aug 23 PHP
判断PHP数组是否为空的代码
Sep 08 PHP
那些年我们错过的魔术方法(Magic Methods)
Jan 14 PHP
php 解压rar文件及zip文件的方法
May 05 PHP
PHP中使用file_get_contents post数据代码例子
Feb 13 PHP
PHP实现HTTP断点续传的方法
Jun 17 PHP
详解PHP用substr函数截取字符串中的某部分
Dec 03 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 PHP
Yii2框架中一些折磨人的坑
Dec 15 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
Feb 28 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 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/09/29 PHP
PHP四大安全策略
2014/03/12 PHP
Destoon模板制作简明教程
2014/06/20 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
2015/11/09 PHP
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
ExtJS4给Combobox设置列表中的默认值示例
2014/05/02 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
基于javascript实现动态时钟效果
2020/08/18 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
纯JavaScript手写图片轮播代码
2016/10/20 Javascript
Vue.js实战之利用vue-router实现跳转页面
2017/04/01 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
使用python解析xml成对应的html示例分享
2014/04/02 Python
python类继承用法实例分析
2015/05/27 Python
python多线程并发让两个LED同时亮的方法
2019/02/18 Python
django框架model orM使用字典作为参数,保存数据的方法分析
2019/06/24 Python
解决Mac下使用python的坑
2019/08/13 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
荷兰皇家航空公司官方网站:KLM Royal Dutch Airlines
2017/12/07 全球购物
Myprotein意大利官网:欧洲第一运动营养品牌
2018/11/22 全球购物
平面设计师工作职责范文
2013/12/03 职场文书
优秀求职信范文分享
2014/01/26 职场文书
2014村务公开实施方案
2014/02/25 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
维稳工作情况汇报
2014/10/27 职场文书
2015年中学图书馆工作总结
2015/07/22 职场文书
2016年清明节网上祭英烈活动总结
2016/04/01 职场文书
创业计划书之熟食店
2019/10/16 职场文书
Nginx反向代理学习实例教程
2021/10/24 Servers
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js