【问题标题】:How to retrieve Json post data如何检索 Json 发布数据
【发布时间】:2013-07-03 03:53:03
【问题描述】:

我在 php 中使用 SLIM 制作了一个 API。我通过传递一些 post 参数使用 curl 调用 API。我已经传递了多个参数,当我将它们打印出来时给了我这个:

"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 和所有变量?

【问题讨论】:

    标签: php json api curl slim


    【解决方案1】:

    寻找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 )
    

    【讨论】:

      【解决方案2】:

      字符串中最好的方法是像这样拆分字符串

      $pizza  = "piece1&piece2&piece3&piece4&piece5&piece6";
      $pieces = explode("&", $pizza);
      echo $pieces[0]; // piece1
      echo $pieces[1]; // piece2
      

      然后您可以使用“=”符号再次拆分它们以将键与值分开并将它们重新组合成一个多维数组

      我用这个作为我的方法

      然后在您的情况下使用数组键作为 cwt 值 Multidimentional Arrays 和函数 Array Functions

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-09-27
        • 1970-01-01
        • 1970-01-01
        • 2021-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多