PHP中无效的JSON解码


Invalid JSON decoding in PHP

我写了一个脚本登录到另一个网站在PHP
当我登录时,页面返回一个JSON响应,其中有一个URL
url中有一个session参数我想把它存储在PHP变量

响应如下所示:

{
    status:{
        err_code:0,
        err_text:""
    },
    url:"https://example.com/foo/bar?parameter=1&ID=54SomeCasualLettersAndNumbersWithAT@&otherparam=blah2"
}

我试图解析JSON,但格式无效,现在我不知道该怎么做。
计数响应的字符并获得我需要的特定字符是一个好主意吗?
从第112页到第123页

你可以选择:

<?php
$string = <<<DATA
{
    status:{
        err_code:0,
        err_text:""
    },
    url:"https://example.com/foo/bar?parameter=1&ID=54SomeCasualLettersAndNumbersWithAT@&otherparam=blah2"
}
DATA;
$regex = '~url:"([^"]+)"~';
preg_match($regex, $string, $match);
print_r($match);
?>

url将在$match[1]

该响应是格式错误的JSON,更像是一个javascript对象。您应该能够使用JSON5解析器来获取所需的数据。这是我在Packagist找到的:

https://packagist.org/packages/hiroto-k/json5-php

希望对你有帮助。