Simplexml_load_file():I / O警告:无法加载外部实体" "

时间:2017-05-20 07:27:17

标签: php xml curl

我尝试了一些从URL中加载数据xml的方法,然后才提出这个问题,但所有这些都失败了。同样在XML url中有一些特殊字符。这是错误

Warning: simplexml_load_file(): I/O warning : failed to load external entity " " in D://....;

这是我的代码:

$url = 'http://website.com?xml&param1=1&param2=2';

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);    // get the url contents

$data = curl_exec($ch); // execute curl request
curl_close($ch);
$xml = simplexml_load_string($data);
$json = json_encode($xml);
echo $json;

感谢每一次帮助

1 个答案:

答案 0 :(得分:0)

您可以使用

更简单地加载网址
$context  = stream_context_create(array('http' => array('header' => 'Accept: application/xml')));
$url = 'http://website.com?xml&param1=1&param2=2';

$xml = file_get_contents($url, false, $context);
$xml = simplexml_load_string($xml);
print_r($xml);

编辑: 在各个地方有一些关于错误403的讨论,一个建议是在此呼叫之前设置用户代理:

ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 6.0)');

(取自file_get_contents() give me 403 Forbidden