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 处理图片的类实现代码
Oct 23 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
Jun 07 PHP
解析php session_set_save_handler 函数的用法(mysql)
Jun 29 PHP
PHP抓屏函数实现屏幕快照代码分享
Jan 02 PHP
php 使用array函数实现分页
Feb 13 PHP
PHP简单获取视频预览图的方法
Mar 12 PHP
Yii框架表单模型和验证用法
May 20 PHP
PHP内存缓存功能memcached示例
Oct 19 PHP
详解Yii2 定制表单输入字段的标签和样式
Jan 04 PHP
php 数组元素快速去重
May 05 PHP
PHP论坛实现积分系统的思路代码详解
Jun 01 PHP
php字符串倒叙
Apr 01 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的图形函数中显示汉字
2006/10/09 PHP
上传多个文件的PHP脚本
2006/11/26 PHP
PHP中的extract的作用分析
2008/04/09 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
PHP模块memcached使用指南
2014/12/08 PHP
初识PHP中的Swoole
2016/04/05 PHP
Laravel手动分页实现方法详解
2016/10/09 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
许愿墙中用到的函数
2006/10/07 Javascript
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
JavaScript面向对象之体会[总结]
2008/11/13 Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
2013/04/17 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
angularjs ocLazyLoad分步加载js文件实例
2017/01/17 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
如何去除vue项目中的#及其ie9兼容性
2018/01/11 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
2018/08/12 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
python使用正则表达式的search()函数实现指定位置搜索功能
2017/11/10 Python
python实现两个文件合并功能
2018/04/01 Python
对python中执行DOS命令的3种方法总结
2018/05/12 Python
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
2018/08/22 Python
Python 从subprocess运行的子进程中实时获取输出的例子
2019/08/14 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
python switch 实现多分支选择功能
2020/12/21 Python
梅西酒窖:Macy’s Wine Cellar
2018/01/07 全球购物
局火灾防控工作方案
2014/05/25 职场文书
建筑工地质量标语
2014/06/12 职场文书
2014年调度员工作总结
2014/11/19 职场文书
资料员岗位职责
2015/02/10 职场文书
高一英语教学反思
2016/03/03 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书