如何使用PHP将多个Import.io搜索引擎连接器组合到一个搜索引擎中?

时间:2014-01-06 03:57:53

标签: php api search import.io

我在下面的表单中有来自数据提取工具/网站(http://import.io)的PHP API代码块。我想要一个搜索框,它不会返回结果,而是多个这些" connector" codeblocks(它们被称为连接器,因为它们将您的搜索查询与通过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);

1 个答案:

答案 0 :(得分:5)

我认为你想要的第一件事就是某种用于POST脚本到你的PHP脚本的HTML表单。我没有测试过这个,但它会做的事情:

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

这将向您的脚本发出HTTP POST请求(称之为myscript.php或更改HTML以匹配您的文件名)与$_POST data array中的输入术语。

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

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

注意:

  • 此处没有验证 - 如果您将表单输入到任何地方,您将需要清理表单输入
  • 有一个有趣的指南on the PHP site,它说的是类似的东西。
  • 如果你做了比这更复杂的事情,你几乎肯定会更好地使用完全成熟的客户端库来获得除PHP以外的语言 - 还有更多列出的on this page
  • 完全披露,我为import.io工作(希望这有帮助!)