博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式采集网页内容函数
阅读量:4558 次
发布时间:2019-06-08

本文共 1523 字,大约阅读时间需要 5 分钟。

自己写的正则表达式提取采集网页内容函数,求人完善优化与交流!QQ:8968737

百度';$rule = '|title|';$arr = preg_message($content, $rule);print_r($arr);/** 按正则表达式提取需要的内容 规定: |[关键字]|[属性] 提取文本,其中关键字和属性是可限项,属性符占一个字符 * 匹配任意文本 关键字命名规范 :单词、数字和下划线任意组合属性: u:提取的字串是URL p:提取的字串是URL +:提取的字串可合并到关键字相同的内容中返回: 提取到的内容 访问: 如果||里面有关键字,则按返回数组的键名为关键字;如果没有关键字,则按所在位置访问。 只提取一项内容时,直接返回提取的内容 */function preg_message($content,$rule,$all=false){ $result=false; if(!preg_match_all('#\|(?
[\w]*?)\|(?
[up\+]?)#i', $rule,$ruleArr)) return false; $getArr = $ruleArr[0]; $keyArr = $ruleArr['key']; $modeArr = $ruleArr['mode']; foreach($keyArr as $k=>$key){ $search[]=preg_quote($getArr[$k]); $repalce[] = preg_replace(array('#^\|\|$#','#^\|([\w]+)#','#^\|#','#\|$#','#\|u$#i','#\|p$#i'),array('([\s\S]+?)',"(?<$key>",'(','[\s\S]+?)','[^>\'\"]+?)','[^>\'\"]+?)'),$getArr[$k]); } $rule=preg_quote($rule); $rule=str_replace('\*','[\s\S]*?',$rule); $rule=str_replace($search,$repalce,$rule); $rule="#$rule#i"; if($all) preg_match_all($rule,$content,$arr); else preg_match($rule,$content,$arr); if(empty($arr) || !is_array($arr)) return false; if(count($getArr)==1) return $arr[1]; foreach($keyArr as $k=>$key){ if(empty($key)) $result[$k+1] = $arr[$k+1]; else $result[$key]=$arr[$key]; } return $result;}?>
posted on
2012-06-16 19:16 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/likeping/archive/2012/06/16/2552040.html

你可能感兴趣的文章
HDFS写流程
查看>>
生产环境服务器环境搭建+ 项目发布
查看>>
js按条件分类json数组,并合计同组数据(一维转换为二维)
查看>>
Exp6 信息搜集与漏洞扫描
查看>>
redis4安装
查看>>
使用命令wsimport构建WebService客户端[转]
查看>>
第八遍:链接详解
查看>>
Qt5.5 使用smtp发邮件的各种坑
查看>>
js奇葩错误 字符串传递问题
查看>>
人之初,性本恶
查看>>
springboot 端口号
查看>>
使用AChartEngine画动态曲线图
查看>>
安卓项目五子棋代码详解(四)
查看>>
urllib 学习一
查看>>
bzoj4196 [Noi2015]软件包管理器——树链剖分
查看>>
kafka源码阅读环境搭建
查看>>
UI设计
查看>>
androidtab
查看>>
Windows Phone 自定义弹出框和 Toast 通知
查看>>
如何生成静态页面的五种方案
查看>>