如何匹配
<code>$rs='callback( {"client_id":"101223150","openid":"9ECFD84190F7D5D40E013CF84D0979FF"} );';
</code>中openid的9ECFD84190F7D5D40E013CF84D0979FF?
如何匹配
<code>$rs='callback( {"client_id":"101223150","openid":"9ECFD84190F7D5D40E013CF84D0979FF"} );';
</code>中openid的9ECFD84190F7D5D40E013CF84D0979FF?
可以使用正则前瞻
立即学习“PHP免费学习笔记(深入)”;
举个例子,需要匹配 <p>Hello world</p>
<div class="aritcle_card">
<a class="aritcle_card_img" href="/xiazai/learn/2577">
<img src="https://img.php.cn/upload/webcode/000/000/000/5a2b9512ccc18301.png" alt="10分钟内自己学会PHP">
</a>
<div class="aritcle_card_info">
<a href="/xiazai/learn/2577">10分钟内自己学会PHP</a>
<p>10分钟内自己学会PHP其中,第1篇为入门篇,主要包括了解PHP、PHP开发环境搭建、PHP开发基础、PHP流程控制语句、函数、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、日期和时间等内容;第2篇为提高篇,主要包括MySQL数据库设计、PHP操作MySQL数据库、Cookie和Session、图形图像处理技术、文件和目录处理技术、面向对象、PDO数据库抽象层、程序调试与错误处理、A</p>
<div class="">
<img src="/static/images/card_xiazai.png" alt="10分钟内自己学会PHP">
<span>524</span>
</div>
</div>
<a href="/xiazai/learn/2577" class="aritcle_card_btn">
<span>查看详情</span>
<img src="/static/images/cardxiayige-3.png" alt="10分钟内自己学会PHP">
</a>
</div>
中的 Hello world,正则表达式可以这么写:(?)(.*)(?=
所以获取 openid 的值可以这样:
<code class="php"><?php
$rs='callback( {"client_id":"101223150","openid":"9ECFD84190F7D5D40E013CF84D0979FF"} );';
$pattern = '/(?<=openid":")(.*)(?=")/';
preg_match($pattern, $rs, $matches);
print_r($matches);</code>输出:
<code class="console">Array
(
[0] => 9ECFD84190F7D5D40E013CF84D0979FF
[1] => 9ECFD84190F7D5D40E013CF84D0979FF
)</code>
<code>php</code><code>preg_match_all('@callback\((.*)\);@', $rs,$matches );
$arr = json_decode($matches[1][0],true);
print_r($arr['openid']);//9ECFD84190F7D5D40E013CF84D0979FF
</code>
这是一个标准的jsonp格式(json参数+回调函数),一个简单的处理方案是拿出函数callback()取它的参数部分然后作为json解析:
<code>php</code><code>$rs = 'callback( {"client_id":"101223150","openid":"9ECFD84190F7D5D40E013CF84D0979FF"} );';
$jsonp = [];
preg_match('/callback\((.+)\);/', $rs, $jsonp);
print_r($jsonp);
$result = json_decode($jsonp[1]);
print_r($result); //使用$result->openid访问你需要的数据
</code>输出
<code>Array
(
[0] => callback( {"client_id":"101223150","openid":"9ECFD84190F7D5D40E013CF84D0979FF"} );
[1] => {"client_id":"101223150","openid":"9ECFD84190F7D5D40E013CF84D0979FF"}
)
stdClass Object
(
[client_id] => 101223150
[openid] => 9ECFD84190F7D5D40E013CF84D0979FF
)
</code>
代码如下:
<code>php</code><code>$rs='callback( {"client_id":"101223150","openid":"9ECFD84190F7D5D40E013CF84D0979FF"} );';
$preg = '/openid["|\']:["|\'](\w+)/i';
preg_match($preg,$rs,$result);
echo $result[1];//9ECFD84190F7D5D40E013CF84D0979FF
</code>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号