preg_match_all使用实例
<?php
$str = <<<EOT
<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>微信公众平台</title><link href="https://res.wx.qq.com/mpres/htmledition/images/favicon1e5b3a.ico" rel="Shortcut Icon"><link rel="stylesheet" type="text/css" href="https://res.wx.qq.com/mpres/htmledition/style/base/layout_head1f56cd.css"/><link rel="stylesheet" type="text/css" href="https://res.wx.qq.com/mpres/htmledition/style/base/base1f8f18.css"/><link rel="stylesheet" type="text/css" href="https://res.wx.qq.com/mpres/htmledition/style/base/lib1ec5f7.css"/><link rel="stylesheet" type="text/css" href="https://res.wx.qq.com/mpres/htmledition/style/page/setting/setting_common1ec5f7.css"/><link rel="stylesheet" type="text/css" href="https://res.wx.qq.com/mpres/htmledition/style/page/setting/setting_index1f46ee.css"/><link rel="stylesheet" type="text/css" href="https://res.wx.qq.com/mpres/htmledition/style/jquery.Jcrop.min1e5b3a.css"/><link rel="stylesheet" type="text/css" href="https://res.wx.qq.com/c/=/mpres/htmledition/style/widget/upload1f8f05.css,/mpres/htmledition/style/widget/processor_bar1ec663.css" /></head><body class="zh_CN"><div class="main_bd"><div class="account_setting_area" id="settingArea"><ul><li class="account_setting_item"><h4>名称</h4><div class="meta_opr"></div><div class="meta_content">青鸢</div></li><li class="account_setting_item"><h4>头像</h4><div class="meta_opr"><a id="changeHeadImg" href="javascript:;">修改头像</a><p class="desc">(一个月内只能申请修改一次)</p></div><div class="meta_content"><img class="avatar" src="/misc/getheadimg?token=1388&fakeid=3084&r=269391" /></div></li><li class="account_setting_item"><h4>登录邮箱</h4><div class="meta_opr"><p><a href="/acct/updateboundemail?t=setting/bind-email&action=bind&token=138856269&step=1&lang=zh_CN">修改</a></p><p class="desc">(一个月内只能申请修改一次)</p></div><div class="meta_content">aaaa@163.com</div></li><li class="account_setting_item"><h4>原始ID</h4><div class="meta_opr"></div><div class="meta_content"><span>gh_00aec11d9</span></div></li><li class="account_setting_item"><h4>微信号</h4><div class="meta_opr"></div><div class="meta_content"><span>aaaa_163</span></div></li><li class="account_setting_item"><h4>类型</h4><div class="meta_opr"></div><div class="meta_content">订阅号</div></li><li class="account_setting_item"><h4>认证情况</h4><div class="meta_opr verify"><a href="javascript:;" id="Js_weiboVerify">关联微博认证</a><a href="/merchant/store?action=detail&t=wxverify/detail&info=verify&lang=zh_CN&token=1388">申请微信认证</a></div><div class="meta_content">未认证</div></li><li class="account_setting_item"><h4>介绍</h4><div class="meta_opr"><p><a id="modifyUserInfo" href="javascript:;" class="">修改</a></p><p class="desc">(一个月内功能介绍只能申请修改一次)</p></div><div class="meta_content">php学习交流</div></li><li class="account_setting_item"><h4>所在地址</h4><div class="meta_opr"><a href="/cgi-bin/settingpage?action=sosomap&lang=zh_CN&token=138856269">设置</a></div><div class="meta_content"></div></li><li class="account_setting_item"><h4>二维码</h4><div class="meta_opr"><a id="more_size" href="javascript:;">更多尺寸</a></div><div class="meta_content"><a target="_blank" class="verifyInfo" title="点击下载" href="/misc/getqrcode?fakeid=3088921&token=1388&style=1&action=download"><img src="/misc/getqrcode?fakeid=3084389217&token=1388&style=1" width="150" /></a></div></li></ul></div></div></div></div><div class="faq"><ul class="links"><li class="links_item no_extra"><a href="http://crm2.qq.com/page/portalpage/wpa.php?uin=40012345&f=1&ty=1&ap=000011:400792:|m:12|f:400792:m:12" target="_blank">在线客服</a></li><li class="links_item"><a href="http://kf.qq.com/product/weixinmp.html" target="_blank">客服中心</a></li></ul><p class="tail">反馈官号weixingongzhong</p></div></div></body></html>
EOT; preg_match_all("/<li class=\"account_setting_item\">\s*?<h4>(.*?)<\/h4>[\s\S]*?<div class=\"meta_content\">([\s\S]*?)<\/div>/",$str,$out);
//var_dump($out);die;
foreach ( $out [1] as $key=>$val ) {
$arr [] = array('key'=>$val,'val'=>trim ( $out[2][$key] ));
}
if (count($arr) > 0) {
foreach ($arr as $k=>$v){
switch ($v['key']){
case '原始ID':
$arr['openid'] = preg_replace("/<span>(.*?)<\/span>/", "$1", $v['val']);
break;
case '微信号':
$arr['account'] = preg_replace("/<span>(.*?)<\/span>/", "$1", $v['val']);
break;
case '名称':
$arr['wx_name'] = $v['val'];
break;
case '类型':
$arr['type'] = ($v['val']=='服务号') ? 1 : 0;
break;
case '认证情况':
$arr['verify'] = strpos($v['val'],"icon_verify_checked")?1:2;
default:
$arr[$v['key']] = $v['val'];
}
}
//return $arr;
} var_dump($arr);die;
?>
输出:
array (size=21)
0 =>
array (size=2)
'key' => string '名称' (length=6)
'val' => string '青鸢' (length=6)
1 =>
array (size=2)
'key' => string '头像' (length=6)
'val' => string '<img class="avatar" src="/misc/getheadimg?token=1388&fakeid=3084&r=269391" />' (length=77)
2 =>
array (size=2)
'key' => string '登录邮箱' (length=12)
'val' => string 'aaaa@163.com' (length=12)
3 =>
array (size=2)
'key' => string '原始ID' (length=8)
'val' => string '<span>gh_00aec11d9</span>' (length=25)
4 =>
array (size=2)
'key' => string '微信号' (length=9)
'val' => string '<span>aaaa_163</span>' (length=21)
5 =>
array (size=2)
'key' => string '类型' (length=6)
'val' => string '订阅号' (length=9)
6 =>
array (size=2)
'key' => string '认证情况' (length=12)
'val' => string '未认证' (length=9)
7 =>
array (size=2)
'key' => string '介绍' (length=6)
'val' => string 'php学习交流' (length=15)
8 =>
array (size=2)
'key' => string '所在地址' (length=12)
'val' => string '' (length=0)
9 =>
array (size=2)
'key' => string '二维码' (length=9)
'val' => string '<a target="_blank" class="verifyInfo" title="点击下载" href="/misc/getqrcode?fakeid=3088921&token=1388&style=1&action=download"><img src="/misc/getqrcode?fakeid=3084389217&token=1388&style=1" width="150" /></a>' (length=214)
'wx_name' => string '青鸢' (length=6)
'头像' => string '<img class="avatar" src="/misc/getheadimg?token=1388&fakeid=3084&r=269391" />' (length=77)
'登录邮箱' => string 'aaaa@163.com' (length=12)
'openid' => string 'gh_00aec11d9' (length=12)
'account' => string 'aaaa_163' (length=8)
'type' => int 0
'verify' => int 2
'认证情况' => string '未认证' (length=9)
'介绍' => string 'php学习交流' (length=15)
'所在地址' => string '' (length=0)
'二维码' => string '<a target="_blank" class="verifyInfo" title="点击下载" href="/misc/getqrcode?fakeid=3088921&token=1388&style=1&action=download"><img src="/misc/getqrcode?fakeid=3084389217&token=1388&style=1" width="150" /></a>' (length=214)
preg_match_all使用实例的更多相关文章
- php中preg正则函数使用
1.preg_match和preg_match_all的区别 preg_match和 preg_match_all区别是preg_match只匹配一次.而preg_match_all全部匹配,直到字符 ...
- php如何实现读取网易有道词典输出单词的xml格式并且转化为html形式
php实现读取网易有道词典输出单词的xml格式并且转化为html形式 一.总结 一句话总结:将xml中的文件用preg_match_all读出来,然后组合成想要的数据 1.explode除了爆炸的意思 ...
- 最近学习工作流 推荐一个activiti 的教程文档
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
- php中实现的一个curl批处理的实例
curl是利用URL语法在命令行方式下工作的开源文件传输工具 本文在php中实现了的一个curl批处理的实例. 代码如下: header("Content-Type:text/html;ch ...
- PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
PHP用星号隐藏部份用户名.身份证.IP.手机号等实例 http://www.jb51.net/article/48800.htm 作者: 字体:[增加 减小] 类型:转载 时间:2014-04-08 ...
- preg_match_all正则表达式的基本使用
了解正则表达式之前,须要掌握一些常用的正则表达式的基础知识,这些如果能记得最好记得,记不住须要用的时候能查到就行,就多个特殊字符,所以说正则表达式玩的就是特殊,具体大家可以查看更加细致的说明. pre ...
- PHP正则表达式及实例
PHP正则表达式及实例 博客分类: Php / Pear / Mysql / Node.js 正则表达式PHPWordPressFPApache 关联: 正则表达式 去除连续空白 + 获取url + ...
- 史上最全PHP正则表达式实例汇总
收集了一份php正则表达式的实例教程,真心不错,记录下. 正则表达式用于字符串处理.表单验证等场合,实用高效. 一些常用的表达式: $str = preg_replace("/(<a. ...
- curl学习(实例不断总结)
1.先来一个简单的案例,请求http协议的网站 // 初始化一个 cURL 对象 $curl = curl_init(); // 设置你需要抓取的URL curl_setopt($curl, CURL ...
随机推荐
- [LeetCode 题解]: Generate Parentheses
Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...
- EF 查询视图返回重复数据的问题
在特殊的情况下查询过滤视图 会出现重复的数据结果集(返回的多条数据结果一致). 原因是啥:主键 在数据库设计的理念中:每个表都应该的唯一的主键.但视图不同,EF中会自动按视图的最前几个非空型字段设置为 ...
- Linux Centos下SQL Server 2017安装和配置
说到SQL Server服务,我们大家都知道是Microsoft公司的数据库服务,当然说到数据库,现在主要分为三大商:1:Oracle.2:Msql Server.3:Mysql:三种数据库在当下环境 ...
- Spring Boot - Restful API
基本用法 @GetMapping与@PostMapping不指定参数时就是指直接使用到controller一级的url就行 @GetMapping与@PathVariable对应,前者{}中的字符串和 ...
- .net 抽象类(abstract)和接口(interface)区别
1.抽象类 (1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法 (2) 抽象类不能被实例化 (3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法, ...
- Weekly Contest 121
984. String Without AAA or BBB Given two integers A and B, return any string S such that: S has leng ...
- 10分钟教你用Python玩转微信之抓取好友个性签名制作词云
01 前言+展示 各位小伙伴我又来啦.今天带大家玩点好玩的东西,用Python抓取我们的微信好友个性签名,然后制作词云.怎样,有趣吧~好了,下面开始干活.我知道你们还是想先看看效果的. 后台登录: 词 ...
- flink学习笔记:DataSream API
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
- P3866 [TJOI2009]战争游戏 最小割
$ \color{#0066ff}{ 题目描述 }$ 小R正在玩一个战争游戏.游戏地图是一个M行N列的矩阵,每个格子可能是障碍物,也可能是空地,在游戏开始时有若干支敌军分散在不同的空地格子中.每支敌军 ...
- POJ2259 Team Queue (JAVA)
第一次TLE,对每个group重新设置Queue中定位,定位到每个group的最后一个元素,但WA 经过检查,DEQUEUE时没有根据情况重新计算group,插入时没有根据情况重新给last赋值 贴A ...