勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPでPOST送信する際に多次元配列も送る方法

   2024/01/13  PHP

PHPでPOST送信する際に多次元配列も送りたかった。ただ普通に送ろうとするとOKの場合とNGの場合があった。解決方法等のメモ。

 

POST送信の方法

以下方法を用いた。

https://taitan916.info/blog/?p=2665

 

テスト結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$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として表示された。

どうにかならないものかと色々試したところシリアライズする事で解決できた。以下のような形。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$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

  関連記事

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 ...

S