我正在尝试使用curl从受密码保护的JSON提要中获取数据,但结果会在末尾添加“Array(”到feed的开头和“)”,使其无效。
我正在使用此代码:
<?php
$url = 'https://slx.arlcap.com/sdata/rcs/tablet/products/Y6UJ9A00000Z/filings';
$username = 'xxx';
$password = 'xxx';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_UNRESTRICTED_AUTH, 1);
curl_setopt($ch, CURLOPT_HEADER, false);
//curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
//curl_setopt($ch, CURLOPT_REFERER, $url);
$result = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
$data = json_decode($result, true);
print_r($data);
?>
结果在这里: http://www.motion.tc//DataTables-1.9.0/examples/ajax/feed.php
有没有一种方法可以在没有添加“Array()”元素的情况下返回数据?
谢谢! 安德鲁
答案 0 :(得分:2)
这是因为你正在使用print_r
功能。要仅获取变量内部的值,请使用foreach循环执行回显。像这样:
foreach( $data as $key => $val ) {
echo $key . " -> " . $val;
}
如果它不是嵌套数组。如果是嵌套数组,请搜索SO以便有效地打印它们。
答案 1 :(得分:0)
您正在尝试打印array
http://php.net/manual/en/language.types.array.php,因为您正在尝试打印基于服务的应用程序,我认为您使用的是标准格式,例如json
用于输出。 ......
请参阅:
http://www.php.net/manual/en/function.json-decode.php
http://www.php.net/manual/en/function.json-encode.php
它会为您提供更清晰的代码,与javascript
等其他技术更好地兼容。