PHP 抓取沒有名字的 POST 值的方法

現在很流行使用 JSON 的傳資料,更懶惰的是連名字都沒有指定,直接將值 json_ecode() 後,直接整個 POST 過來,但是這樣子 $POST 沒有名字就無法抓取值,要怎麼做呢?

PHP 抓取沒有名字的 POST 值的方法

想要抓取沒有名稱的 $POST,可以使用 file_get_contents('php://input') 來抓,要順便 json_decode() 的完整寫法如下:

  • $POST = jsondecode(file_get_contents('php://input'), true);

範例程式

  • vim post_raw.php
    <?php
    $POST = jsondecode(file_get_contents('php://input'), true);
    
    var_dump($POST);
    ?>
    
  • vim post_raw_send.php
    <?php
    post_url('http://example.com/post_raw.php', json_encode('["a" => "abc", "b" => "def"]'));
    
    function post_url($url, $postvar)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postvar);
        $res = curl_exec($ch);
        curl_close($ch);
    
        return $res;
    }
    ?>
  • php post_raw_send.php
    • string(28) "["a" => "abc", "b" => "def"]"

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料