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创建和删除目录函数介绍和递归删除目录函数分享
Nov 18 PHP
使用php的HTTP请求的库Requests实现美女图片墙
Feb 22 PHP
php跨服务器访问方法小结
May 12 PHP
PHP发送短信代码分享
Aug 11 PHP
ThinkPHP开发框架函数详解:C方法
Aug 14 PHP
PHP文件缓存smarty模板应用实例分析
Feb 26 PHP
深入理解PHP中的empty和isset函数
May 26 PHP
对PHP依赖注入的理解实例分析
Oct 09 PHP
Laravel学习教程之View模块详解
Sep 18 PHP
php 算法之实现相对路径的实例
Oct 17 PHP
PHP守护进程化在C和PHP环境下的实现
Nov 21 PHP
php 多继承的几种常见实现方法示例
Nov 18 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/06/24 PHP
thinkphp分页集成实例
2017/07/24 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
php 可变函数使用小结
2018/06/12 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
javascript 设置文本框中焦点的位置
2009/11/20 Javascript
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
初窥JQuery(一)jquery选择符 必备知识点
2010/11/25 Javascript
一个JavaScript去除字符串末尾的空白实例代码
2014/09/22 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
checkbox:click事件触发span元素内容改变的方法
2017/09/11 Javascript
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
javascript Canvas动态粒子连线
2020/01/01 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
VUE 单页面使用 echart 窗口变化时的用法
2020/07/30 Javascript
antd-日历组件,前后禁止选择,只能选中间一部分的实例
2020/10/29 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
python使用循环实现批量创建文件夹示例
2014/03/25 Python
Python入门_条件控制(详解)
2017/05/16 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
Python学习笔记之Zip和Enumerate用法实例分析
2019/08/14 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
2020/04/08 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
Html5大文件断点续传实现方法
2015/12/05 HTML / CSS
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
竞选班长的演讲稿
2014/04/24 职场文书
物业管理专业自荐信
2014/07/01 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书
2014年保育员个人工作总结
2014/12/02 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书