我是PHP的新手。我正在使用wget调用http api(托管站点不提供http_get)。当手动执行时,该调用返回一个xml集。但似乎我的wget调用将响应放入数组中。
我无法访问阵列,也不确定从何处开始。
以下是我的代码。仅供参考 - xml play_by_play对象的前4个元素是:id,visitor,home,status。
<?php
exec('wget http://api.sportsdatallc.org/mlb-t3/pbp/99a0f209-2c69-49a4-99f9-8aebdf55b6e9.xml?api_key=API_KEY', $array);
//print_r(array_values($array));
echo $array["play_by_play"][0]->id;
?>
我很感激您的帮助!
由于
答案 0 :(得分:0)
当您使用exec()
时,第二个参数($array
)将填充输出的每行。那不是你想要的。这就是为什么你不能访问你的值,它只是一个字符串,而不是一个解析的XML文件。
我建议你改用shell_exec()
。
$xml = shell_exec('wget http://your.xml.file');
然后,您可以在$xml
上使用XML解析器。
当PHP内置文件下载时,我不知道为什么你在这里使用exec
。 http_get()
不是PHP核心的一部分,这就是您的托管不提供它的原因。如果他们允许您使用exec()
,那么我会假设他们会让您使用内置的file_get_contents()
。
$xml = file_get_contents('http://your.xml.file');