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 输出双引号&quot;与单引号'的方法
May 09 PHP
ThinkPHP查询中的魔术方法简述
Jun 25 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
Jul 01 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
Dec 25 PHP
php上传图片并压缩的实现方法
Dec 22 PHP
PHP 数组基本操作方法详解
Jun 17 PHP
简述php环境搭建与配置
Dec 05 PHP
PHP中类的自动加载的方法
Mar 17 PHP
php中请求url的五种方法总结
Jul 13 PHP
PHP长网址与短网址的实现方法
Oct 13 PHP
laravel框架语言包拓展实现方法分析
Nov 22 PHP
浅析PHP中的 inet_pton 网络函数
Dec 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
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
简单PHP上传图片、删除图片实现代码
2010/05/12 PHP
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
基于header的一些常用指令详解
2013/06/06 PHP
php实现发送微信模板消息的方法
2015/03/07 PHP
PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】
2017/04/19 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
2017/07/31 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
2019/12/13 PHP
从js向Action传中文参数出现乱码问题的解决方法
2013/12/29 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
JS自动生成动态HTML验证码页面
2017/06/14 Javascript
ng-alain表单使用方式详解
2018/07/10 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
跟老齐学Python之总结参数的传递
2014/10/10 Python
Python3.x中自定义比较函数
2015/04/24 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
利用python实现AR教程
2019/11/20 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
python操作链表的示例代码
2020/09/27 Python
Python根据URL地址下载文件并保存至对应目录的实现
2020/11/15 Python
Python实现列表索引批量删除的5种方法
2020/11/16 Python
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
团代会宣传工作方案
2014/05/08 职场文书
销售顾问工作计划书
2014/09/15 职场文书
道德模范事迹材料
2014/12/20 职场文书
六年级情感作文之500字
2019/10/23 职场文书
python中字符串String及其常见操作指南(方法、函数)
2022/04/06 Python