ბოლო პერიოდში პოპულარული ხდება POST მეთოდით JSON ფორმატირებული ინფორმაციის გაცვლა სერვისებს შორის.
სტანდარტულად მოლოდინი გვაქვს რომ ასე მიწოდებული ინფორმაცია დაგვხვდება სერვერის მხარეს $_POST ან/და $_REQUEST ცვლადებში, რაც ერთის მხრივ ლოგიკურია მაგრამ PHP ასე არ მუშაობს.
PHP-ში POST მოთხოვნის დამუშავებისას $_POST ან/და $_REQUEST ხვდება მხოლოდ იმ შემთხვევაში ინფორმაცია თუ მოთხოვნისას Content-Type სათაურის აქვს მნიშვნელობა: application/x-www-form-urlencoded
ან multipart/form-data
. სხვა შემთხვევაში POST-ით გადაცემული ინფორმაცია $_POST ან/და $_REQUEST ცვლადებში არ გვხვდება.
JSON ინფორმაციის გადაცემისას კი Content-Type-ს აქვს მნიშვნელობა application/json
.
იმისთვის რომ JSON ფორმატით ჩაწოდებული ინფორმაცია წაკითხოთ PHP-ში, საჭიროა ინფორმაციის php://-დან წაკითხვა.
აქვე მოგვავს მაგალითი თუ როგორ შეგიძლიათ POST-ით გადაცემული JSON ინფორმაციის მიღება PHP-ში:
<?php
$jsonInput = file_get_contents('php://input');
$data = json_decode($jsonInput, true);
var_dump($data);
?>