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一些服务器端特性的配置加强php的安全
Oct 09 PHP
计数器详细设计
Oct 09 PHP
php入门学习知识点三 PHP上传
Jul 14 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
Jun 19 PHP
PHP中的Streams详细介绍
Nov 12 PHP
9个经典的PHP代码片段分享
Dec 18 PHP
PHP获取ip对应地区和使用网络类型的方法
Mar 11 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
Oct 11 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
Jun 06 PHP
Yii2语言国际化的配置教程
Aug 19 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
Oct 16 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+APACHE实现用户论证的方法
2006/10/09 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
php无限级分类实现方法分析
2016/10/19 PHP
基于PHP常用文件函数和目录函数整理
2017/08/17 PHP
windows系统php环境安装swoole具体步骤
2021/03/04 PHP
Firefox div高度自适应
2009/04/28 Javascript
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
jquery.jstree 增加节点的双击事件代码
2010/07/27 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
2014/06/06 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
vue.js  父向子组件传参的实例代码
2017/10/29 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
2018/06/07 Javascript
Vue中&quot;This dependency was not found&quot;问题的解决方法
2018/06/19 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
2019/05/05 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
js实现简单音乐播放器
2020/06/30 Javascript
Python Socket编程入门教程
2014/07/11 Python
Python 40行代码实现人脸识别功能
2017/04/02 Python
windows下python之mysqldb模块安装方法
2017/09/07 Python
python进行两个表格对比的方法
2018/06/27 Python
python画折线图的程序
2018/07/26 Python
对python mayavi三维绘图的实现详解
2019/01/08 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
Python如何脚本过滤文件中的注释
2020/05/27 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
在线购买澳大利亚设计师手拿包和奢华晚装手袋:Olga Berg
2019/03/20 全球购物
英国最大最好的无人机商店:Drones Direct
2019/07/12 全球购物
大学生最常用的自我评价
2013/12/07 职场文书
大学秋游活动方案
2014/02/11 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
小学班长竞选稿
2015/11/20 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android