如何匹配
$rs='callback( {"client_id":"101223150","openid":"9ECFD84190F7D5D40E013CF84D0979FF"} );';
中openid的9ECFD84190F7D5D40E013CF84D0979FF?
回复内容:
如何匹配
$rs='callback( {"client_id":"101223150","openid":"9ECFD84190F7D5D40E013CF84D0979FF"} );';
中openid的9ECFD84190F7D5D40E013CF84D0979FF?
可以使用正则前瞻
立即学习“PHP免费学习笔记(深入)”;
举个例子,需要匹配 <p>Hello world</p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/xiazai/code/9778" title="Asp.net企业项目资料管理系统"><img
src="https://img.php.cn/upload/webcode/000/000/020/175992120551413.png" alt="Asp.net企业项目资料管理系统" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/xiazai/code/9778" title="Asp.net企业项目资料管理系统">Asp.net企业项目资料管理系统</a>
<p>1 系统使用三层构架2 数据库访问使用sqlHelper3 编辑器使用FreeTextBox4 布局采用Div+Css5 正则表达式实现数据验证6 动态构建sql查询语句</p>
</div>
<a href="/xiazai/code/9778" title="Asp.net企业项目资料管理系统" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div> 中的 Hello world,正则表达式可以这么写:(?)(.*)(?=
所以获取 openid 的值可以这样:
<?php
$rs='callback( {"client_id":"101223150","openid":"9ECFD84190F7D5D40E013CF84D0979FF"} );';
$pattern = '/(?<=openid":")(.*)(?=")/';
preg_match($pattern, $rs, $matches);
print_r($matches);输出:
Array
(
[0] => 9ECFD84190F7D5D40E013CF84D0979FF
[1] => 9ECFD84190F7D5D40E013CF84D0979FF
)
php
这是一个标准的jsonp格式(json参数+回调函数),一个简单的处理方案是拿出函数callback()取它的参数部分然后作为json解析:
php
输出
Array
(
[0] => callback( {"client_id":"101223150","openid":"9ECFD84190F7D5D40E013CF84D0979FF"} );
[1] => {"client_id":"101223150","openid":"9ECFD84190F7D5D40E013CF84D0979FF"}
)
stdClass Object
(
[client_id] => 101223150
[openid] => 9ECFD84190F7D5D40E013CF84D0979FF
)
代码如下:
php










