#input url
$url = 'http://www.example.com';
#get the data
$json = file_get_contents($url);
$contents = utf8_encode($json);
#convert to php array
$php_array = json_decode($json);
var_dump($php_array);
exit;
我试图解码一个网站,但是一旦我解码它,我的页面就会显示为NULL,是否有人知道如何修复它?感谢
答案 0 :(得分:2)
在您的情况http://www.example.com中,此网址返回404错误。所以file_get_contents($url)
获得null
值。
$url = 'http://www.example.com';
$json = file_get_contents($url); // HTTP 404
echo $json; //returns null
这很好用
<?php
$url = 'http://www.example.com';
// create curl resource
$ch = curl_init();
// set url
curl_setopt($ch, CURLOPT_URL, $url);
//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// $output contains the output string
$output = curl_exec($ch);
// close curl resource to free up system resources
curl_close($ch);
$php_array = json_decode($output, true); // true for returning to an array
echo "<pre>";
print_r($php_array);
echo "</pre>";
额外提示:
我有时也会遇到null
问题。您可以要求json_last_error()
获取明确的信息。
答案 1 :(得分:0)
您可以在此处使用CURL请求:
示例:强>
<?php
$url = 'http://www.example.com'; // your url
$ch = curl_init(); // initiate
curl_setopt($ch, CURLOPT_URL,$url); // curl url
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result = curl_exec($ch); // curl output
$php_array = json_decode($result,true);
var_dump($php_array);
?>
<强>输出:强>
array(3) { ["timestamp"]=> string(8) "10:38:38" ["error_num"]=> int(404) ["error_msg"]=> string(20) "File Not Found Error" }
CURL为您提供了更多选项来获取远程内容和错误检查,而不是file_get_content。