正如我在上一个问题中所提到的,我读到了有关cURL以及如何使用它的信息。我收到了以下API的请求:api.openkvk.nl(用荷兰语,很遗憾)工作:
$get = $_POST['bedrijfsnaam'];
$get = str_replace(" ","%20",$get);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://api.openkvk.nl/php/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);
print("<pre>"); print_r($result); print("</pre>");
$kvks = $result[0]["RESULT"]["ROWS"][0][2];
echo $kvks;
curl_close($ch);
我以下面的形式得到了结果:
array(array("RESULT"=>array("TYPES"=>array("bigint","varchar","int","int","varchar","varchar","varchar","varchar","varchar","varchar","bigint","varchar","decimal","decimal","date"),"HEADER"=>array("kvk","bedrijfsnaam","kvks","sub","adres","postcode","plaats","type","status","website","vestiging","rechtsvorm","lat_rad","lon_rad","anbi"),"ROWS"=>array(array("526937320000","Unicmedia","52693732","0","Terschellingstraat 12","1825ND","Alkmaar","Hoofdvestiging",NULL,NULL,"22611126",NULL,NULL,NULL,NULL)))))
我想做的是以下内容:
将这些值放在数据库中:kvks,adres,postcode和plaats in a form(以便我可以编辑它们)。
我不知道该怎么做。你能给我一个解释吗?
PS我是API的新手,所以我还不了解所有内容。
答案 0 :(得分:2)
他们的API将其作为php字符串返回 - 将您的网址部分/php/
更改为/json/
。
然后,将其设为$result = json_decode(curl_exec($ch), true);
现在数组访问应该可以工作。
要获取kvks
的值,假设您发布的值是$result
,则使用$kvks = $result[0]["RESULT"]["ROWS"][0][2]
。
(看起来您正在发布print_r
的结果 - 尝试将其包含在<pre>
标记中,当您显示更加格式化的结果时)
由于你有PHP获取值,你可以简单地输出一个预先填充它们的HTML表单:
<form action="savedata.php" method="post">
<?php
echo "<input type='text' name='blah' value=\"" . htmlspecialchars($blah) ."\"><br>";
?>
然后,如果$blah
为asdf
,则输出<input type='text' name='blah' value="asdf">
。
当您将其提交到savedata.php
方法时,您可以根据需要将修改后的值(现在通过$_POST['blah']
找到)插入到数据库中。
答案 1 :(得分:0)
从我的实验看来,这个API似乎正在返回PHP代码,这必须是eval'd。评估是一个非常糟糕的主意。
我可以通过替换/ php / with / json /
来建议使用API的JSON方法然后,API将返回一个JSON字符串,您可以将其解码为对象/数组
您还需要将curl_setop($ch, CURLOPT_RETURNTRANSFER,0);
添加到您的卷曲请求
以下是一些修订后的代码
$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);
$ apiResult现在将包含一个包含结果的数组
var_dump($apiResult)
会给你
array
0 =>
array
'RESULT' =>
array
'TYPES' =>
array
...
'HEADER' =>
array
...
'ROWS' =>
array
...
现在您已拥有该阵列,您应该可以轻松地将其插入到数据库中。