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