ホームページ >バックエンド開発 >PHPチュートリアル >CURL を配列問題に解析した後の結果
index.php、echo json_encode 後の結果は次のとおりです:
{"11":{"l_id":"11","l_title":"CITS-香港観光 1 日ツアー [質の高い純粋な楽しみ]"}, "12 ":{"l_id":"12","l_title":"test"}}
そしてクライアントコード(client.php)は以下の通りです:
$curlPost='key='.urlencode($key);$ch=curl_init();curl_setopt($ch,CURLOPT_URL,'http://www.cits-sz.net/api/index.php');curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost);$data=curl_exec($ch);curl_close($ch);echo json_decode($data,true);
結果をデータベースに挿入したいので、
foreach($arr as $f) ただし、配列形式でないと仕方がありません foreach($arr as $f) を使用する必要があります
ただし、配列形式でないと無理です
それからもう一度 json_decode します
$s = '{"11":{"l_id":"11","l_title":"CITS-香港观光一天游【品质纯玩】"},"12":{"l_id":"12","l_title":"test"}}';print_r(json_decode($s,1));
Array( [11] => Array ( [l_id] => 11 [l_title] => CITS-香港观光一天游【品质纯玩】 ) [12] => Array ( [l_id] => 12 [l_title] => test ))
とても奇妙です、私はこの文を使用します、curl_setopt($ch,CURLOPT_URL,'http://www.cits-sz.net/api/index.php') ); 表示されるものはシリアル化されています
この文を使用してください。curl_setopt($ch,CURLOPT_URL,'localhost/szgl/api/index.php'); ローカルであればこれは正常です
なぜ結果をローカルで取得してアップロードするのですか結果は異なりますか? ?ローカルでは配列ですが、サーバー上では文字列になります
何も言えません
http://www.cits-sz.net/api/index.php にアクセスしてください
取得:
アクセス許可がありません
これに直接アクセスすることはできません。後ろに鍵があります、
これです
http://www.cits-sz.net/api/index.php?key=01f34958ba730edc2ca30d65245dd6a0
これを一時的なテスト用のクライアントと見なします
http://www.cits-sz.net です。 /api/client.php.
<?phpinclude("../includes/application_top.php");$key='01f34958ba730edc2ca30d65245dd6a0';$curlPost='key='.urlencode($key);$ch=curl_init();curl_setopt($ch,CURLOPT_URL,'http://www.cits-sz.net/api/index.php');//(1)//curl_setopt($ch,CURLOPT_URL,'http://localhost/szgl/api/index.php');//(2)curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost);$data=curl_exec($ch);curl_close($ch);echo $a=json_decode($data,TRUE);//echo gettype($json);/*foreach($a as $f){ echo $f["l_title"];}*/?>内のコード
api/index.php ファイルのコードは次のとおりです以下の通り:
<?phpinclude("../includes/application_top.php");function arrayRecursive(&$array, $function, $apply_to_keys_also = false){ static $recursive_counter = 0; if (++$recursive_counter > 1000) { die('possible deep recursion attack'); } foreach ($array as $key => $value) { if (is_array($value)) { arrayRecursive($array[$key], $function, $apply_to_keys_also); } else { $array[$key] = $function($value); } if ($apply_to_keys_also && is_string($key)) { $new_key = $function($key); if ($new_key != $key) { $array[$new_key] = $array[$key]; unset($array[$key]); } } } $recursive_counter--;}function JSON($array){ arrayRecursive($array, 'urlencode', true); $json = json_encode($array); return urldecode($json);}$key=Reqs("key");if ($key<>'01f34958ba730edc2ca30d65245dd6a0'){ echo '无权限访问';exit;}$sql='select l_id,l_title from '.TAB_TRAVEL_LINE.' order by l_id';$rsline=$mydb->query($sql,2);while ($fline=$rsline->movenext()){ $data_line[]=$fline;}//上面那几句是自己的读取数据的echo $a=JSON($data_line);?>
$key='01f34958ba730edc2ca30d65245dd6a0';$curlPost='key='.urlencode($key);$ch=curl_init();curl_setopt($ch,CURLOPT_URL,'http://www.cits-sz.net/api/index.php');//(1)curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost);$data=curl_exec($ch);curl_close($ch);print_r(json_decode(substr($data, 3), 1));//去掉 BOM 头后再解码
Array( [0] => Array ( [l_id] => 11 [l_title] => CITS-香港观光一天游【品质纯玩】 ) [1] => Array ( [l_id] => 12 [l_title] => test ))
$key='01f34958ba730edc2ca30d65245dd6a0';$curlPost='key='.urlencode($key);$ch=curl_init();curl_setopt($ch,CURLOPT_URL,'http://www.cits-sz.net/api/index.php');//(1)curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost);$data=curl_exec($ch);curl_close($ch);print_r(json_decode(substr($data, 3), 1));//去掉 BOM 头后再解码
Array( [0] => Array ( [l_id] => 11 [l_title] => CITS-香港观光一天游【品质纯玩】 ) [1] => Array ( [l_id] => 12 [l_title] => test ))
モデレーター
xuzuningに感謝します。問題は完全に解決され、善良な人々は安全な生活を送っています。
したがって、BOM ヘッダーがあってはなりません