2016-05-21 37 views
0

当我在浏览器中加载http://www.nydailynews.com/json/cmlink/NYDN.Local.Article.rss时,它会加载JSON内容。但随着file_get_contents拉内容时,我得到奇怪的字符,如忽略file_get_contents的源文件类型编码和/或转换为json编码

年} OUaV @

我试过$contents = mb_convert_encoding(file_get_contents('http://www.nydailynews.com/cmlink/NYDN.Local.Article.rss'), 'HTML-ENTITIES', "UTF-8");但只返回一个XML格式的类型,而不是浏览器中可见的JSON。

UPDATE:

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL,'http://www.nydailynews.com/json/cmlink/NYDN.Local.Article.rss'); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_ENCODING , 'gzip'); 
$content = curl_exec ($ch); 
+0

您发布的网址是一个RSS是一个XML应用程序的编码转换为UTF-8。这里没有涉及JSON。 – axiac

+0

我的歉意...我试图拉的源URL是http://www.nydailynews.com/json/cmlink/NYDN.Local.Article.rss不是http://www.nydailynews.com/cmlink/ NYDN.Local.Article.rss ...修正以上问题 – user3638589

回答

0

您可以尝试使用DOMDocument

$contents= file_get_contents("http://www.nydailynews.com/cmlink/NYDN.Local.Article.rss");  
$dom = new DOMDocument();  
if($dom->loadXML($contents)){ // $contents is an XML document with iso-8859-1 encoding specified in the declaration 
    $dom->encoding = 'utf-8'; // convert document encoding to UTF8 
    return $dom->saveXML(); // return valid, utf8-encoded XML 
}