要在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文档

PHP 正则匹配script标签中的json数据

原文地址: https://www.cveoy.top/t/topic/hXYq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录