2016-08-11 85 views
0

我已经写了一个脚本登录到另一个网站在PHP
当我登录时,页面会返回一个JSON响应,其中里面有一个网址
在该网址有一个会话参数我想在PHP变量存储无效的JSON解码

的反应是这样的:

{ 
    status:{ 
     err_code:0, 
     err_text:"" 
    }, 
    url:"https://example.com/foo/bar?parameter=1&[email protected]&otherparam=blah2" 
} 

我试图解析JSON但格式是无效的,现在我不知道该怎么办..
这是一个好主意计算响应的字符并获得我需要的指定字符?
它们形成了第112个到第123个

+1

JSON是无效的,因为这些键没有用引号括起来,因为它们应该是。你可能需要在这里使用正则表达式,例如。 '/ url:“(。*?)”/' - 它大胆地假设一个URL本身不会包含引号;) –

+0

问题是,这是* not *一个JSON响应。它看起来更像是一段JavaScript。你有任何控制生成此响应的页面吗?如果是这样,我会在那边修复它。 – GolezTrol

回答

1

你可以去:

<?php 

$string = <<<DATA 
{ 
    status:{ 
     err_code:0, 
     err_text:"" 
    }, 
    url:"https://example.com/foo/bar?parameter=1&[email protected]&otherparam=blah2" 
} 
DATA; 

$regex = '~url:"([^"]+)"~'; 
preg_match($regex, $string, $match); 
print_r($match); 
?> 

将URL中$match[1]