【发布时间】:2019-03-26 15:49:42
【问题描述】:
我想使用 preg_match_all 函数从站点获取多个数据。但是当我使用这个正则表达式命令(。*?)多个时,该功能不起作用。
这不是 json。我从任何 Instagram 个人资料的源代码中获取数据。例如:view-source:https://www.instagram.com/ziynetaki 打开链接可以看到以下代码。脚本类型="text/javascript">window._sharedData = .....
我试过了:
$display = '#__typename":"GraphImage","id":"(.*?)","edge_media_to_caption":{"edges":[{"node":{"text":"(.*?)"}}]},"shortcode":"(.*?)","edge_media_to_comment":{"count":(.*?)},"comments_disabled":false,"taken_at_timestamp":(.*?),"dimensions":{"height":(.*?),"width":(.*?)},"display_url":"(.*?)","edge_liked_by"#i';
preg_match_all($display, $url, $dop);
print_r($dop);
输出为空:
Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) [3] => Array ( ) [4] => Array ( ) [5] => Array ( ) [6] => Array ( ) [7] => Array ( ) )
有人可以帮我做这件事吗?我搜索了很多解决方案,但找不到任何信息。由于我的英语不是很好,所以我不知道如何在互联网上搜索,谢谢。
【问题讨论】:
-
你输入的字符串是什么? (似乎是 JSON)
-
将
#i替换为#si。.默认不匹配换行符。 -
@WiktorStribiżew 我想说:使用
json_decode()而不是使用 RegEx 解析 JSON -
@WiktorStribiżew 因为我知道你有点太喜欢 RegEx 并且看起来你在邀请 OP 继续尝试使用 RegEx 而不是正确的方式
-
我从不使用正则表达式解析 JSON。
标签: php regex preg-match-all