2014-01-06 3 views
4

У меня есть PHP-код PHP API из инструмента для извлечения данных/веб-сайта (http://import.io) в форме ниже. Я хочу иметь окно поиска, которое возвращает результат не из одного, а нескольких из этих «кодовых блоков» коннектора (они называются коннекторами, потому что они связывают ваши поисковые запросы с результатами, переданными через import.io, предположительно).Как я могу объединить несколько поисковых конвейеров Import.io в одну поисковую систему с PHP?

Я ноб на 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); 
+0

зависит от API принимает несколько ключевых слов или не на 1 API вызова. Однако не прочитал API. – Raptor

+0

Спасибо, но мой вопрос действительно больше на стороне окна поиска ... не могли бы вы привести мне пример того, как это сделать, даже с одним запросом/коннектором? –

ответ

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> 

Это будет выдавать запрос 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 (надеюсь, что это помогло!)