PHP 正则匹配script标签中的json数据
要在PHP中匹配script标签中的JSON数据,可以使用正则表达式。以下是一个示例代码:
<?php
// 要匹配的HTML字符串
$html = '<script>var data = {"name":"John", "age":30, "city":"New York"};</script>';
// 使用正则表达式匹配script标签中的JSON数据
$pattern = '/<script.*?>var data = (.*?);<\/script>/s';
preg_match($pattern, $html, $matches);
// 提取匹配到的JSON数据
$jsonData = $matches[1];
// 解析JSON数据
$data = json_decode($jsonData, true);
// 输出解析后的数据
print_r($data);
?>
这段代码会输出以下结果:
Array
(
[name] => John
[age] => 30
[city] => New York
)
在上述代码中,我们使用了正则表达式/<script.*?>var data = (.*?);<\/script>/s来匹配script标签中的JSON数据。这个正则表达式的含义是匹配<script>开头、</script>结尾的内容,其中.*?表示非贪婪匹配任意字符。然后使用preg_match()函数进行匹配,将匹配到的结果存储在$matches数组中。
接下来,我们从$matches数组中提取出匹配到的JSON数据,然后使用json_decode()函数将JSON数据解析为PHP数组。最后,我们输出解析后的数据。
请注意,正则表达式可能不是最好的解析HTML的方法。如果可能的话,建议使用HTML解析器来解析HTML文档
原文地址: https://www.cveoy.top/t/topic/hXYq 著作权归作者所有。请勿转载和采集!