从PHP中删除CURL中的“Array()”结果

时间:2012-04-12 21:18:34

标签: php json curl

我正在尝试使用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()”元素的情况下返回数据?

谢谢! 安德鲁

2 个答案:

答案 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等其他技术更好地兼容。