Php 将cURL请求的结果转换为表单

Php 将cURL请求的结果转换为表单,php,mysql,api,curl,Php,Mysql,Api,Curl,正如我在上一个问题中提到的,我读过关于旋度以及如何使用它的文章。我通过以下API收到了请求:API.openkvk.nl(很遗憾,它是荷兰语)正在工作: 我想做的是: 将数据库中的这些值:kvks、adres、postcode和plaats放入一个表单中(以便我可以编辑它们) 我不知道怎么做。你能给我解释一下吗 PS我是API的新手,所以我还不完全理解 更新: 他们的API将其作为php字符串返回-将URL中显示/php/的部分更改为/json/ 然后,使其具有$result=json\u de

正如我在上一个问题中提到的,我读过关于旋度以及如何使用它的文章。我通过以下API收到了请求:API.openkvk.nl(很遗憾,它是荷兰语)正在工作:

我想做的是:

将数据库中的这些值:kvks、adres、postcode和plaats放入一个表单中(以便我可以编辑它们)

我不知道怎么做。你能给我解释一下吗

PS我是API的新手,所以我还不完全理解

更新: 他们的API将其作为php字符串返回-将URL中显示
/php/
的部分更改为
/json/

然后,使其具有
$result=json\u decode(curl\u exec($ch),true)

现在阵列访问应该可以工作了


要获取
kvks
的值,假设您发布的值是
$result
中的值,您可以使用
$kvks=$result[0][“result”][“ROWS”][0][2]

(看起来您正在发布一个
打印的结果\r
——当您显示它时,尝试将其封装在
标记中,以获得更格式化的结果)

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://api.openkvk.nl/json/SELECT%20*%20FROM%20kvk%20WHERE%20bedrijfsnaam%20=%20'$get'%20LIMIT%201;");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($ch);
curl_close($ch);
$apiResult = json_decode($result, true);
由于PHP可以获取这些值,因此您只需输出一个HTML表单,并预先填充它们:

array
  0 => 
    array
      'RESULT' => 
        array
          'TYPES' => 
            array
              ...
          'HEADER' => 
            array
              ...
          'ROWS' => 
            array
              ...


从我的实验来看,这个API似乎返回了PHP代码,这必须进行评估。评估是一个非常糟糕的主意

我是否可以建议使用API的JSON方法,将/php/替换为/JSON/

然后API将返回一个JSON字符串,您可以将其解码为一个对象/数组

您还需要添加
curl\u setop($ch,CURLOPT\u RETURNTRANSFER,0)到您的curl请求

下面是一些修改后的代码

$apiResult现在将包含一个包含结果的数组

var\u dump($apireult)
将为您提供


现在您已经有了阵列,您应该可以轻松地将其插入到DB中。

我没有回声,因此如何才能阻止阵列显示?我更新了我的帖子,这样你就可以看到cURL代码是什么了。默认情况下,cURL只是回显结果。真的不知道为什么这是默认值。要使cURL返回到一个值而不是回显,请使用
cURL\u setopt($ch,CURLOPT\u RETURNTRANSFER,true)。然后,将
$result=
添加到
curl\u exec($ch)
之前。然后,使用
打印(“”);打印(结果);打印(“”)
当我使用
$kvks=$result[0][“result”][“ROWS”][0][2]
时,我遇到以下错误:无法将字符串偏移量用作数组。请将您的
打印内容添加到原始帖子中。当结构都在一行上时,很难看到它。你必须添加
curl\u setopt($ch,CURLOPT\u RETURNTRANSFER,true)在curl_exec之前的行上。
<form action="savedata.php" method="post">
<?php
    echo "<input type='text' name='blah' value=\"" . htmlspecialchars($blah) ."\"><br>";
 ?>
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://api.openkvk.nl/json/SELECT%20*%20FROM%20kvk%20WHERE%20bedrijfsnaam%20=%20'$get'%20LIMIT%201;");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($ch);
curl_close($ch);
$apiResult = json_decode($result, true);
array
  0 => 
    array
      'RESULT' => 
        array
          'TYPES' => 
            array
              ...
          'HEADER' => 
            array
              ...
          'ROWS' => 
            array
              ...