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 ...
随机推荐
- Transaction And Lock--常用的查询事务和锁的语句
--===================================================== --查看当前运行事务 SET TRANSACTION ISOLATION LEVEL R ...
- robot中使用evaluate转化数据格式
如果你使用robot却没有用过evaluate,那你将永远禁锢在框架中. json对象格式入参可以使用字典格式直接传入,但最近有一个接口测试的入参是一个json数组,在传参时总是提示请求参数不合法, ...
- ZKEACMS添加搜索功能,搜索插件说明
ZKEACMS默认是不支持搜索功能的.但是搜索功能是比较常用的一个功能,使用这个搜索插件,可以让CMS支持搜索: 如下图所示: 数据库 Microstft Sql Server 2008R2 以上 页 ...
- Ajax 如何执行 Response.Redirect
Ajax 直接对服务端的Response.Redirect是不感冒的, 另觅途径, 具体可行办法如下: Web Service 服务端: public WXService() { if (!IsVal ...
- UWP平台Taglib编译(2)
此文已由作者郑博授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验 #endif // _WIN32 } class FileStream::FileStreamPrivate ...
- win7 下 vim字体默认设置
set guifont=Consolas 在_vimrc开头第一行写上就行了
- linux上 查看mysql的binglog日志
查看mysqlbinglog日志 mysqlbinlog --no-defaults --database=数据库名称 --start-datetime= > /mysql.txt 备注: -- ...
- “全栈2019”Java第二十一章:流程控制语句中的决策语句if
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 张小龙演讲PPT
35条核心要点 一.产品经理要求 1.了解人性 2.了解群体心理 3.产品经理像上帝一样,可建造系统,制定规则,让群体在系统中演化 4.提高自己的艺术品位.质量要求品位/细节体验品位:作品而非产品:工 ...
- 模糊查询中Like的使用
通配符: %. _ %:表示任意个或多个字符.可匹配任意类型和长度的字符 _:表示任意单个字符.匹配单个任意字符,它常用来限制表达式的字符长度语句:(可以代表一个中文字符) demo: //usern ...