2015-11-16 30 views
1

我是新來的PHP和編碼一般,我跟隨this php-MediaWiki tutorial。我正在使用Nitrous.io LAMP堆棧,根據教程的說明,我已經安裝了Zend框架來使用它的REST客戶端。 我的Apache服務器似乎工作正常,當我使用Nitrous預覽功能運行下面的代碼示例時,HTML搜索框就會按預期顯示。但是,當我輸入搜索詞並返回時絕對沒有任何反應。很明顯,PHP代碼失敗,但沒有錯誤消息來幫助我診斷問題。我假設問題在於Zend部分,我想知道在教程發佈後的四年中,Zend_Rest_Client功能已被更改或棄用。 我查看了文檔,但作爲noob,我很難破譯問題出在哪裏。 我會很感激,如果有人能給我一個指示我應該做些什麼來獲得這個代碼的工作。PHP和Zend_Rest_Client

<html> 
    <head></head> 
    <body> 
    <h2>Search</h2> 
    <form method="post"> 
     Search: <input type="text" name="q" /> 
    </form> 
    <?php 
    // if form submitted 
    if (isset($_POST['q'])) { 
     // load Zend classes 
     require_once 'Zend/Loader.php'; 
     Zend_Loader::loadClass('Zend_Rest_Client'); 

     try { 
     // initialize REST client 
     $wikipedia = new Zend_Rest_Client('http://en.wikipedia.org/w/api.php'); 
     // set query parameters 
     $wikipedia->action('query'); 
     $wikipedia->list('search'); 
     $wikipedia->srwhat('text'); 
     $wikipedia->format('xml'); 
     $wikipedia->srsearch($_POST['q']); 

     // perform request 
     // iterate over XML result set 
     $result = $wikipedia->get(); 
     } catch (Exception $e) { 
     die('ERROR: ' . $e->getMessage()); 
     } 
    ?> 
    <h2>Search results for '<?php echo $_POST['q']; ?>'</h2> 
    <ol> 
    <?php foreach ($result->query->search->p as $r): ?> 
     <li><a href="http://www.wikipedia.org/wiki/ 
     <?php echo $r['title']; ?>"> 
     <?php echo $r['title']; ?></a> <br/> 
     <small><?php echo $r['snippet']; ?></small></li> 
    <?php endforeach; ?> 
    </ol> 
    <?php 
    } 
    ?> 
    </body> 
</html> 

回答

0

我只是發佈這個,以防它可能會幫助別人。在回答我自己的問題時,是的,Zend_Rest_Client組件已從Zend框架的第2版中刪除,這是默認情況下在Nitrous和PhpStorm中安裝的。 但是,您可以使用Composer將Zend版本1安裝在一起,從而使用Zend_Rest_Client。 我也遇到了麻煩加載,但我最終發現this thread,這給了我的解決方案。