2014-01-06 46 views
4

我有一個數據提取工具/網站(http://import.io)在下面的表單PHP API代碼塊。我想有一個搜索框,它返回的結果不是來自一個,而是多個這樣的「連接器」代碼塊(它們被稱爲連接器,因爲它們將搜索查詢與通過import.io輸入的結果連接起來,大概是這樣)。如何將多個Import.io搜索引擎連接器合併到一個使用PHP的搜索引擎中?

我是PHP的noob,所以我不知道如何去做這件事。

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

我想你會想要的第一件事就是發佈到你的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工作(希望這有助於!)