【问题标题】:How can I combine multiple Import.io search engine connectors into one search engine with PHP?如何使用 PHP 将多个 Import.io 搜索引擎连接器组合成一个搜索引擎?
【发布时间】:2014-01-06 03:57:53
【问题描述】:

我有来自数据提取工具/网站 (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);

【问题讨论】:

  • 取决于 API 在 1 个 API 调用中是否接受多个关键字。虽然没有阅读 API。
  • 谢谢,但我的问题实际上更多是在搜索框方面......你能给我举个例子,说明如何只用一个查询/连接器来做到这一点吗?

标签: php api search import.io


【解决方案1】:

我认为您首先需要的是某种 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 data array 中的输入项向您的脚本发出 HTTP POST 请求(称为 myscript.php 或更改 HTML 以匹配您的文件名)。

这意味着您可以获取使用$_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 工作(希望这对您有所帮助!)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    相关资源
    最近更新 更多