4

我有来自数据提取工具/网站 ( http://import.io ) 的PHP API 代码块,格式如下。我想要一个搜索框,它返回的结果不是一个,而是多个这些“连接器”代码块(它们被称为连接器,因为它们将您的搜索查询与通过 import.io 管道传输的结果连接起来,大概)。

我是 PHP 的菜鸟,所以我不知道该怎么做。

<?php

$userGuid = "kjnjkn-32d2-4b1c-a9c5-erferferferferf";
$apiKey = "APIKEY";

function query($connectorGuid, $input, $userGuid, $apiKey) {

  $url = "https://api.import.io/store/connector/" . $connectorGuid . "/_query?_user=" . urlencode($userGuid) . "&_apikey=" . urlencode($apiKey);

  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
  curl_setopt($ch, CURLOPT_POSTFIELDS,  json_encode(array("input" => $input)));
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  $result = curl_exec($ch);
  curl_close($ch);

  return json_decode($result);
}

// Query for tile WEBSEARCH
$result = query("98c9bac2-e623-4e31-8a3e-erferferferf", array(
  "search_query" => "term1",
), $userGuid, $apiKey);
var_dump($result);

// Query for tile WEBSEARCH
$result = query("98c9bac2-e623-4e31-8a3e-bferfreferfe", array(
  "search_query" => "term2",
), $userGuid, $apiKey);
var_dump($result);
4

1 回答 1

5

我认为您首先需要的是某种 HTML 表单,可以 POST 到您的 PHP 脚本。我还没有测试过这个,但它会做的事情:

<form action="path/to/myscript.php" method="POST">
    <input type="text" name="search" placeholder="query">
    <input type="submit" value="Search">
</form>

这将使用$_POST 数据数组中的输入项向您的脚本发出 HTTP POST 请求(称为 myscript.php 或更改 HTML 以匹配您的文件名)。

这意味着您可以获取输入 using 的搜索词$_POST["search"],并将其用作查询的输入:

$result = query("98c9bac2-e623-4e31-8a3e-erferferferf", array(
  "search_query" => $_POST["search"],
), $userGuid, $apiKey);
var_dump($result);

笔记:

  • 对此的验证为零 - 如果您将其放在生产中的任何地方,您将需要清理表单输入
  • PHP 站点上有一个有趣的指南,其中说了类似的话。
  • 如果您做的事情比这更复杂,您几乎肯定会更好地为 PHP 以外的语言使用成熟的客户端库 -此页面上列出了更多内容。
  • 完全披露,我为 import.io 工作(希望这有帮助!)
于 2014-01-31T18:16:18.187 回答