【问题标题】:How would I put this php curl response in to an array and present it on the web我如何将这个 php curl 响应放入一个数组并在网络上呈现
【发布时间】:2018-11-12 16:02:54
【问题描述】:

我试图弄清楚如何通过将 cURL 响应转换为数组来将其转换为表。我猜想用内置的 json 解码器转换它?

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.site.com/xyz/xyz',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Accept: application/json",
    "Ocp-Apim-Subscription-Key: <omit>",
    "Postman-Token: <omit>",
    "cache-control: no-cache"
  ),
));

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

curl_close($curl);

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

?>

【问题讨论】:

标签: php arrays json curl


【解决方案1】:

鉴于您添加了标题"Accept: application/json",我将假设您收到一个实际的 json。要将 json 数据放入数组中,请使用 json_decode。要获得数组的字符串表示形式,您可以使用很多东西,var_dump、var_export、print_r,甚至 json_encode,其中最流行的就是这些。让我们一起去 print_r。并且由于 print_r 的数组文本导出不(保证)与 HTML 兼容,因此您还需要对输出进行 html 编码,这可以通过 htmlentities 完成,并且您可能希望在此处保留换行符/格式,即 HTML默认不做,可以使用&lt;pre&gt;html标签让html保留格式。把它们放在一起,我们得到了

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  $data=json_decode($response,true);
  $textual=print_r($data,true);
  $html=htmlentities($textual, ENT_QUOTES | ENT_HTML401 | ENT_SUBSTITUTE | ENT_DISALLOWED, 'UTF-8', true);
  echo '<pre>'.$html.'</pre>';
}
  • 根据您喜欢的格式,您还可以将 json_encode 与 JSON_PRETTY_PRINT、var_export 或 var_dump 一起使用,仅举几例。

【讨论】:

  • Hanshenrik 的帽子 - 在高速公路上像保时捷一样工作。八大冰 badaboom.
猜你喜欢
  • 1970-01-01
  • 2013-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多