2011-09-30 43 views
1

我需要知道是否有任何方法可以在GAE上使用file_get_html或任何等效函數?我知道它有一個名爲URLFetch()的東西,但我無法理解我將如何從一個PHP文件調用它。在Google App Engine中從PHP文件中獲取文件

任何幫助?

+0

是的,你可以在PHP中使用file_get_contents&friends,它在內部使用urlfetch。 – Mars

回答

0

您無法在Google App Engine上運行PHP。您可以創建一個servlet,它將從任何給定的URL中讀取數據,並以Java的任何方式操作數據(因爲您使用Java標記標記了此問題)。

AppEngine URL Fetch Java API Overview

URL url = new URL("http://www.example.com/atom.xml"); 
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); 
String line; 

while ((line = reader.readLine()) != null) { 
    // ... 
} 
reader.close(); 

如果你的意思是,你正在運行的其它應用程序PHP和你想打電話給你的AppEngine Servlet中說PHP應用程序,那麼你可以映射執行這個URL抓取的servlet到您的AppEngine應用程序中的URL,然後從您的PHP應用程序中點擊該URL。然而,這似乎是一個糟糕的設計,因爲當你剛剛在PHP應用程序中使用它時,你正在進行兩次網絡調用。

+1

嗨@Jonathan,我不是那麼無知。 [Quercus](http://www.caucho.com/resin-3.0/quercus/)是我已經在我的系統上配置的PHP的純Java實現。 –

0

這裏是我的URL創建了一個快速和骯髒的包裝函數取栓皮櫟通過在谷歌App Engine的使用PHP:

function fetch_url($url){ 

    import java.net.URL; 
    import java.io.BufferedReader; 
    import java.io.InputStreamReader; 

    $java_url = new URL($url); 
    $java_bufferreader = new BufferedReader(new InputStreamReader($java_url->openStream())); 

    while (($line = $java_bufferreader->readLine()) != null) { 
     $content .= $line; 
    } 

    return $content; 
} 

// Sample usage: 
echo fetch_url('http://google.com'); 

希望這可以幫助別人誰是失去了,因爲我是。

相關問題