Как я могу объединить несколько соединителей поисковой системы Import.io в одну поисковую систему с PHP?

У меня есть кодовые блоки PHP API из инструмента извлечения данных / веб-сайт ( http://import.io/) в форме ниже. Я хочу иметь окно поиска, которое возвращает результат не одного, а нескольких из этих кодовых блоков "соединителей" (они называются соединителями, потому что они связывают ваши поисковые запросы с результатами, передаваемыми через 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 ответ

Я думаю, первое, что вам нужно, это какая-то HTML-форма, которая помещается в ваш PHP-скрипт. Я не проверял это, но что-то вроде этого подойдет:

<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.

Это означает, что вы можете набрать поисковый термин, используя $_POST["search"]и использовать его в качестве входных данных для запроса:

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

Заметки:

  • В этом нет никакой проверки - вы захотите очистить входные данные формы, если вы поместите это в производство где-нибудь
  • На сайте PHP есть интересное руководство, в котором говорится о похожих вещах.
  • Если вы делаете что-то более сложное, чем это, вам почти наверняка будет лучше использовать полноценную клиентскую библиотеку для языка, отличного от PHP - на этой странице перечислены другие.
  • Полное раскрытие, я работаю для import.io (надеюсь, это помогло!)
Другие вопросы по тегам