Как получить данные постов Json
Я сделал API, используя SLIM в PHP. Я вызываю API, используя curl, передавая некоторые параметры записи. Я передал несколько параметров, и когда я их распечатываю, это дает мне следующее:
"name=%2Fvar%2Fwww%2Ftest%2FAPI%2F1jpg&cwt=1&fwt=1&swt=1&twt=1&dwt=1&slwt=1"
Несколько переменных разделены '&' как я могу получить переменную 'name' отдельно от переменной 'cwt'??
Мой код, вызывающий API:
$url='http://......./API/index.php/search';
$data=array ("name"=>"/var/www/test/API/1jpg","cwt"=>"1","fwt"=>"1","swt"=>"1","twt"=>"1","dwt"=>"1","slwt"=>"1");
$response=sendPostData($url,$data);
function sendPostData($url,$post){
$ch=curl_init($url);
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"POST");
curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($post));
curl_exec($ch);
Мой API:
require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();
$app=new \Slim\Slim();
$app->post('/search',function () use($app){
$result=($app->request()->getBody());
$final=json_encode($result);
echo $final;
});
$app->run();
Как я могу напечатать имя,cwt,twt и все переменные отдельно?
2 ответа
Ищите http://www.php.net/manual/en/function.parse-str.php
Так должно быть:
$string = urldecode("name=%2Fvar%2Fwww%2Ftest%2FAPI%2F1jpg&cwt=1&fwt=1&swt=1&twt=1&dwt=1&slwt=1");
$vars = array();
parse_str($string, $vars);
print_r($vars);
Это даст вам это:
Array ( [name] => /var/www/test/API/1jpg [cwt] => 1 [fwt] => 1 [swt] => 1 [twt] => 1 [dwt] => 1 [slwt] => 1 )
Лучший подход в строке - разделить строку следующим образом
$pizza = "piece1&piece2&piece3&piece4&piece5&piece6";
$pieces = explode("&", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
Затем вы можете разделить их снова со знаком "=", чтобы отделить ключи от значений и объединить их в многомерный массив
Я использую это как свой подход
Затем используйте ключи массива для значения cwt в вашем случае многомерных массивов и для функций Array Functions