配列をjson_encodeでエンコード、curlで別サーバへ送信し、
受け取ったデータをjson_decodeでデコードするが、
展開したデータの中身がNULLになってしまう。
###前提・実現したいこと
データ送信側(CakePHP)からcurlを使用し、
データ受信側(CodeIgniter)で受け取りデコードし、値を取得したい。
###発生している問題・エラーメッセージ
受信したデータをjson_decodeでデコードするが、
展開したデータの中身がNULLになってしまう。
送信側で受信データの中身をログ出力してみたが、余計なデータ(ゴミ?)が
付加されてしまっている?
###該当のソースコード
◎データ送信側(CakePHP)
// 接続先に渡すデータ $param = json_encode($data, true); //①ログ出力処理 file_put_contents('/XXX/debug/debug.log', date('[Y/m/d H:i:s]')."param=".print_r($param, true)."\n", FILE_APPEND); $ch = curl_init(); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, $param); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $url); $result = curl_exec($ch); $res_data = json_decode($result, true); curl_close ($ch);
◎データ受信側(CodeIgniter)
// データを受信する $param = $this->input->post(); $param_array = json_decode($param, true); // ②ログ出力処理 file_put_contents('/YYY/debug/debug.log', date('[Y/m/d H:i:s]')."param=".print_r($param, true)."\n", FILE_APPEND); file_put_contents('/YYY/debug/debug.log', date('[Y/m/d H:i:s]')."param_array=".print_r($param_array, true)."\n", FILE_APPEND);
###試したこと
送信側、受信側の渡したいデータの中身をfile_put_contents、print_rを使用し、
ログ出力して確認。
◎データ送信側の①ログ出力処理結果(CakePHP)
param={"name":"aaaaa","id":"12345"}
◎データ受信側の②ログ出力処理結果(CodeIgniter)
param_arrayの中身がNULLになってしまっている。
param=Array ( [{"name":"aaaaa","id":"12345"}] => [0] => ) param_array=
###補足情報(言語/FW/ツール等のバージョンなど)
Apache/2.4.37 (Amazon)
PHP 7.1.25
CakePHP version 3.3.9
CodeIgniter version 3.1.0
回答3件
あなたの回答
tips
プレビュー