0

curl を使用して、パスワードで保護された JSON フィードからデータをフェッチしようとしていますが、その結果、フィードの先頭に「Array (」、最後に「)」が追加され、無効になります。

私はこのコードを使用しています:

<?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 に答える