如何对JSON的纯文本响应进行编码,并使用PHP CURL获取特定数据

如何对JSON的纯文本响应进行编码,并使用PHP CURL获取特定数据,php,json,api,curl,encode,Php,Json,Api,Curl,Encode,我得到了纯文本格式的api响应。因此,对于响应数据的操作,我需要将响应编码为JSON格式。然后,我可以轻松地获取欲望响应数据并使用它 请求代码(示例):: $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "http://api.arshohag.me/test", CURLOPT_RETURNTRANSFER => true

我得到了纯文本格式的api响应。因此,对于响应数据的操作,我需要将响应编码为JSON格式。然后,我可以轻松地获取欲望响应数据并使用它

请求代码(示例)::
        $curl = curl_init();

        curl_setopt_array($curl, array(
          CURLOPT_URL => "http://api.arshohag.me/test",
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => "",
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 30,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => "POST",
          CURLOPT_POSTFIELDS =>      "login=testapp&key=152456&md5=chasdg4as432&action=test",
          CURLOPT_HTTPHEADER => array(
            "cache-control: no-cache",
            "content-type: application/x-www-form-urlencoded",
          ),
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);

        curl_close($curl);

        if ($err) {
          echo "cURL Error #:" . $err;
        } else {
          echo $response;

        }
响应代码(示例)::

        $curl = curl_init();

        curl_setopt_array($curl, array(
          CURLOPT_URL => "http://api.arshohag.me/test",
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => "",
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 30,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => "POST",
          CURLOPT_POSTFIELDS =>      "login=testapp&key=152456&md5=chasdg4as432&action=test",
          CURLOPT_HTTPHEADER => array(
            "cache-control: no-cache",
            "content-type: application/x-www-form-urlencoded",
          ),
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);

        curl_close($curl);

        if ($err) {
          echo "cURL Error #:" . $err;
        } else {
          echo $response;

        }
我想将响应编码为JSON格式,如下所示-

{
  "id" : "2566546",
  "authentication_key" : "74448975",
  "error_code" : "0",
  "error_txt" : "Test Ok"
}
 $id=array["id"];
 echo $id;
也可以像这样抓取数据-

{
  "id" : "2566546",
  "authentication_key" : "74448975",
  "error_code" : "0",
  "error_txt" : "Test Ok"
}
 $id=array["id"];
 echo $id;

通过json_编码完成。像这样使用它

var_dump(json_解码($response,true))


Reference

此方法适用于Java,如果每行以结尾,您可以将其转换为您的语言\r\n

String jsonStringConverter(String stringResponse) {
String[] parts = stringResponse.split("\\r\\n");
String jsonString = "{\"";
for (int i = 0; i < parts.length; i++) {
    jsonString += parts[i].replace("=", "\":\"");
    jsonString += (i < parts.length - 1) ? "\", \"" : "";
}
return jsonString += "\"}";
String-jsonStringConverter(String-stringResponse){
String[]parts=stringResponse.split(\\r\\n”);
字符串jsonString=“{\”;
对于(int i=0;i        $curl = curl_init();

        curl_setopt_array($curl, array(
          CURLOPT_URL => "http://api.arshohag.me/test",
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => "",
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 30,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => "POST",
          CURLOPT_POSTFIELDS =>      "login=testapp&key=152456&md5=chasdg4as432&action=test",
          CURLOPT_HTTPHEADER => array(
            "cache-control: no-cache",
            "content-type: application/x-www-form-urlencoded",
          ),
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);

        curl_close($curl);

        if ($err) {
          echo "cURL Error #:" . $err;
        } else {
          echo $response;

        }
jsonString+=(i $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "http://api.arshohag.me/test", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "login=testapp&key=152456&md5=chasdg4as432&action=test", CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/x-www-form-urlencoded", ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } } 返回jsonString+=“\”}; }

输出:

        $curl = curl_init();

        curl_setopt_array($curl, array(
          CURLOPT_URL => "http://api.arshohag.me/test",
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => "",
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 30,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => "POST",
          CURLOPT_POSTFIELDS =>      "login=testapp&key=152456&md5=chasdg4as432&action=test",
          CURLOPT_HTTPHEADER => array(
            "cache-control: no-cache",
            "content-type: application/x-www-form-urlencoded",
          ),
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);

        curl_close($curl);

        if ($err) {
          echo "cURL Error #:" . $err;
        } else {
          echo $response;

        }
{
id: "2566546",
authentication_key: "74448975",
error_code: "0",
error_txt: "Test Ok"
}
object(stdClass)#1 (4) {
  ["id"]=>
  string(7) "2566546"
  ["authentication_key"]=>
  string(8) "74448975"
  ["error_code"]=>
  string(1) "0"
  ["error_txt"]=>
  string(7) "Test Ok"
}

ID is: 2566546 
要从JSON获取数据,请执行以下操作:

        $curl = curl_init();

        curl_setopt_array($curl, array(
          CURLOPT_URL => "http://api.arshohag.me/test",
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => "",
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 30,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => "POST",
          CURLOPT_POSTFIELDS =>      "login=testapp&key=152456&md5=chasdg4as432&action=test",
          CURLOPT_HTTPHEADER => array(
            "cache-control: no-cache",
            "content-type: application/x-www-form-urlencoded",
          ),
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);

        curl_close($curl);

        if ($err) {
          echo "cURL Error #:" . $err;
        } else {
          echo $response;

        }
// Decode JSON. Assume JSON object is stored in $jsonData
$decodedData = json_decode($jsonData);
var_dump($decodedData);

// Access like below
$id = $decodedData->id;
echo "\nID is: ".$id;
输出:

        $curl = curl_init();

        curl_setopt_array($curl, array(
          CURLOPT_URL => "http://api.arshohag.me/test",
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => "",
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 30,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => "POST",
          CURLOPT_POSTFIELDS =>      "login=testapp&key=152456&md5=chasdg4as432&action=test",
          CURLOPT_HTTPHEADER => array(
            "cache-control: no-cache",
            "content-type: application/x-www-form-urlencoded",
          ),
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);

        curl_close($curl);

        if ($err) {
          echo "cURL Error #:" . $err;
        } else {
          echo $response;

        }
{
id: "2566546",
authentication_key: "74448975",
error_code: "0",
error_txt: "Test Ok"
}
object(stdClass)#1 (4) {
  ["id"]=>
  string(7) "2566546"
  ["authentication_key"]=>
  string(8) "74448975"
  ["error_code"]=>
  string(1) "0"
  ["error_txt"]=>
  string(7) "Test Ok"
}

ID is: 2566546 

json_encode在这里不起作用,因为它是一个普通的TXT。需要一些编码算法。请检查这个,我希望这将帮助您$lines=explode(“\n”,$response);$output=Array();$thisElement=&$output;foreach($line作为$line的行){$elements=explode(“:”,$line);if(count($elements)>1){$thismelement[trim($elements[0])]=$elements[1];}if(strstrstr($line,“{”){$elements=explode(“{”,$line);$key=trim($elements[0]);$output[$key]=Array();$thismelement=&$output[$key];}if(strstrstr($line,“}”){$thiseelement=&$output;}}}echo'';print_r($output);echo'';我正在使用它将txt转换为纯文本..但是我在outputuhm中得到了“t”或“tt…”结构数据,然后对其进行json_编码
        $curl = curl_init();

        curl_setopt_array($curl, array(
          CURLOPT_URL => "http://api.arshohag.me/test",
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => "",
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 30,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => "POST",
          CURLOPT_POSTFIELDS =>      "login=testapp&key=152456&md5=chasdg4as432&action=test",
          CURLOPT_HTTPHEADER => array(
            "cache-control: no-cache",
            "content-type: application/x-www-form-urlencoded",
          ),
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);

        curl_close($curl);

        if ($err) {
          echo "cURL Error #:" . $err;
        } else {
          echo $response;

        }