PHPでPOST送信する際に多次元配列も送る方法
2024/01/13
PHPでPOST送信する際に多次元配列も送りたかった。ただ普通に送ろうとするとOKの場合とNGの場合があった。解決方法等のメモ。
POST送信の方法
以下方法を用いた。
https://taitan916.info/blog/?p=2665
テスト結果
$data = array(
'key' => 123, //OK
'account' => array('id' => 111, 'pass' => 222), //OK
'title' => array(
0 => array('name' => 'hoge'), //NG
1 => array('name' => 'huga'), //NG
)
);
$data = array(
'key' => 123, //OK
'account' => array('id' => 111, 'pass' => 222), //OK
'title' => array(
0 => array('name' => 'hoge'), //NG
1 => array('name' => 'huga'), //NG
)
);
$data = array( 'key' => 123, //OK 'account' => array('id' => 111, 'pass' => 222), //OK 'title' => array( 0 => array('name' => 'hoge'), //NG 1 => array('name' => 'huga'), //NG ) );
keyとaccountは正常に受信できたけど、titleに関しては正常に受信できなかった。具体的には受信側でvar_dumpしたところstring型のarrayとして表示された。
どうにかならないものかと色々試したところシリアライズする事で解決できた。以下のような形。
$title = array(
0 => array('name' => 'hoge'),
1 => array('name' => 'huga'),
);
$data = array(
'key' => 123,
'account' => array('id' => 111, 'pass' => 222),
'title' => serialize($title),
);
$title = array(
0 => array('name' => 'hoge'),
1 => array('name' => 'huga'),
);
$data = array(
'key' => 123,
'account' => array('id' => 111, 'pass' => 222),
'title' => serialize($title),
);
$title = array( 0 => array('name' => 'hoge'), 1 => array('name' => 'huga'), ); $data = array( 'key' => 123, 'account' => array('id' => 111, 'pass' => 222), 'title' => serialize($title), );
関連記事
-
-
PHPでxmlのpubDateを見やすい形に整形する
PHPでsimplexml_load_file関数とかを使ってデータを取得した際 ...
-
-
PHPでシンプルな英数字のCAPTCHAを「Gregwar / Captcha」ライブラリで実装する方法
PHPでシンプルなランダム英数字のCAPTCHAを実装したい。「Gregwar ...
-
-
PHPでテンプレートPDFに動的に文字や数値を追記し出力する方法(TCPDF&FPDI)
請求書や領収書のテンプレートがあり、そちらに対して動的に文字・数値を追記し出力さ ...
-
-
php.iniを変更後にApacheを再起動しても反映されない場合の対応方法
先日AlmaLinux8系にChronyをインストールしてサーバの時刻同期を行っ ...
-
-
PHPでCookie保存時にSameSite属性を設定する方法
あるシステムのセキュリティ対策としてCookie保存時にSameSite属性をS ...