0

我正在尝试使用 curl 从受密码保护的 JSON 提要中获取数据,但结果会在提要的开头添加“数组(”,并在末尾添加“)”,使其无效。

我正在使用这段代码:

<?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()”元素的情况下返回数据?

谢谢!安德鲁

4

2 回答 2

2

那是因为你正在使用一个print_r函数。要仅获取变量内部的值,请使用 foreach 循环执行回显。像这样的东西:

foreach( $data as $key => $val ) {
  echo $key . " -> " . $val;
}

如果它不是嵌套数组。如果它嵌套数组,请搜索 SO 以有效打印它们。

于 2012-04-12T21:23:10.983 回答
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等)具有更好的兼容性。

于 2012-04-12T21:33:07.217 回答