2014-09-04 41 views
0

我在研究一種使用Google Books API的方法。 使用此代碼有預期的結果。用PHP顯示'Google Books`項目

$page = file_get_contents("https://www.googleapis.com/books/v1/volumes?q=julio+verne&maxResults=40"); 

$data = json_decode($page, true); 
for($a = 0 ; $a <= 39 ; $a++) { 
$img = $data['items'][$a]['volumeInfo']['imageLinks']['thumbnail']; 
print '<img src="'.$img.'" alt="ScanLine"/>'; 
echo '<br>'; 
echo "Title = " . $data['items'][$a]['volumeInfo']['title']; 
echo '<br>'; 
echo "Authors = " . @implode(",", $data['items'][$a]['volumeInfo']['authors']); 
echo '<br>'; 
echo "Editora = " . $data['items'][$a]['volumeInfo']['publisher']; 
echo '<br>'; 
echo "id = " . $data['items'][$a]['id']; 
echo '<br>'; 
echo "Resumo = "; 
echo "<p>" . $data['items'][$a]['volumeInfo']['description']; 
echo '</p><br>'; 

} 

另一方面,實現和使用代碼形式的代碼不起作用。 我與窗體頁有這樣的代碼:

<form action="action.php" method="POST"> 
     <div class="form-group"> 
       <div class="campos"> 
         <label> 
         Search 
         </label> 
         <input type="text" name="search" style="margin-right: 10px; width:250px; float:left" class="input-field" placeholder="Title, Author..." />  
         <input type=hidden name=numResults value="&maxResults=40"> 
         <button type="submit" id="search" class="btn btn-default">Search</button> 
       </div> 
     </div> 
</form> 

而且我的行爲有這樣的代碼:

$var1 = "https://www.googleapis.com/books/v1/volumes?q="; 
$var2 = urlencode($_POST['search']); 
$var3 = "&maxResults=40"; 
$str = str_replace(" ", "+", $var2); 
$page = $var1.$str.$var3; 
$data = json_decode($page, true); 
echo $page; 
echo '<br>'; 
for($a = 0 ; $a <= 39 ; $a++) { 
$img = $data['items'][$a]['volumeInfo']['imageLinks']['thumbnail']; 
print '<img src="'.$img.'" alt="ScanLine"/>'; 
echo '<br>'; 
echo "Title = " . $data['items'][$a]['volumeInfo']['title']; 
echo '<br>'; 
echo "Authors = " . @implode(",", $data['items'][$a]['volumeInfo']['authors']); 
echo '<br>'; 
echo "Editora = " . $data['items'][$a]['volumeInfo']['publisher']; 
echo '<br>'; 
echo "Resumo = "; 
echo "<p>" . $data['items'][$a]['volumeInfo']['description']; 
echo '</p><br>'; 
    } 

什麼一定是錯誤的? 有何建議? 來自巴西的感謝

+0

目前尚不清楚你想在這裏實現什麼目標? - 我建議採用Google的JSON響應(使用一些示例參數),並將響應粘貼到聯機JSON編輯器中。這將使它更容易理解和解析響應 - 在這裏查看這一個,它運作良好... http://www.jsoneditoronline.org/ – Kolors 2014-09-04 23:01:32

回答

1

您在第二個示例中未打電話給file_get_contents()。所以$page只是網址。

$page = file_get_contents($var1.$str.$var3); 
+0

Rob,謝謝。它以我需要的方式工作。 看到Kolors,我不需要所有的搜索結果。當他解釋默認情況下最多顯示10條記錄和40條時,API文檔很清晰。 這些是與搜索詞相關性最高的記錄。 我的應用程序是關於書籍。操縱由API返回的JSON就足夠了。我不打算使用JavaScript來返回一個簡單的查詢。 – 2014-09-05 04:35:23