Извлечение файла из файла PHP в Google App Engine - PullRequest
1 голос
/ 30 сентября 2011

Мне нужно знать, могу ли я использовать file_get_html или любую эквивалентную функцию в php на GAE? Я знаю, что у него есть что-то, называемое URLFetch (), но я не могу понять, как я буду вызывать это из файла php.

Любая помощь?

Ответы [ 2 ]

0 голосов
/ 21 февраля 2012

Вот быстрая и грязная функция-обертка, которую я создал для URL Fetch, используя PHP через Quercus в Google App Engine:

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');

Надеюсь, это поможет тому, кто потерян так же, как и я.

0 голосов
/ 01 октября 2011

Вы не можете запустить PHP на Google App Engine.Вы можете создать сервлет, который будет читать с любого заданного URL-адреса и манипулировать данными любым способом, который вам необходим в Java (поскольку вы пометили этот вопрос тегом Java).

Из AppEngineURL Fetch Обзор API Java :

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 из указанного приложения PHP, то вы можете отобразить сервлет, который выполняетэтот URL-адрес извлекает URL-адрес в приложении AppEngine, а затем нажимает этот URL-адрес в приложении PHP.Это, однако, кажется плохим дизайном, поскольку вы делаете два сетевых вызова, когда вы могли бы просто использовать это в первую очередь в приложении PHP.

...