首页 > 解决方案 > 使用 simplexml_load_file() 无法读取 xml 文件;

问题描述

当我使用 simplexml_load_file () 函数时,我从在线 xml 文件中读取数据时遇到问题;我遇到了一个错误。我的代码PHP:

$url = "https://www.bidv.com.vn/ServicesBIDV/ExchangeRateServlet";
$xml = simplexml_load_file($url);
echo '<pre>';
print_r($xml);
echo '</pre>';

输入错误

Warning: simplexml_load_file(https://www.bidv.com.vn/ServicesBIDV/ExchangeRateServlet): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in D:\All In One\xammp\htdocs\ty_gia_api\index.php on line 12
Warning: simplexml_load_file(): I/O warning : failed to load external entity "https://www.bidv.com.vn/ServicesBIDV/ExchangeRateServlet" in D:\All In One\xammp\htdocs\ty_gia_api\index.php on line 12

标签: phpxmlapi

解决方案


尝试从 URL 获取内容,例如:

$url = "https://www.bidv.com.vn/ServicesBIDV/ExchangeRateServlet";
$xml = simplexml_load_string(shell_exec("curl -k '$url'"));
echo '<pre>';
print_r($xml);
echo '</pre>';

我看到您尝试获取的页面不是 XML,而是 JSON。这将起作用:

$url = 'https://www.bidv.com.vn/ServicesBIDV/ExchangeRateServlet';
$data = json_decode(shell_exec("curl -k '$url'"), 1);
echo '<pre>';
print_r($data);
echo '</pre>';

var_dump($data);

推荐阅读