Какая функция PHP лучше всего подходит для извлечения данных веб-сервера - PullRequest
1 голос
/ 05 июня 2011

Я подумал, что интересным способом записи моего просмотра или выполнения определенных задач при просмотре определенных веб-сайтов будет создание какого-либо оверлея (внешнего интерфейса), чтобы он находился в верхней части окна просмотра моего браузера и имел PHP на заднем разборе.данные веб-сервера.Они очень распространены для таких служб, как прокси-серверы на основе сценариев и реклама.

Если бы я использовал PHP для сохранения текстовых копий статей в Википедии по мере их просмотра, автономного кэша, если хотите, какой метод полученияданные будут наиболее подходящими?

Использование потоковых функций (file_get_contents, file и т. д.) или HTTP-запросов cURL / core PHP или даже сокетов?(хотя возиться с TCP / IP было бы не самым простым способом).

Ответы [ 3 ]

1 голос
/ 05 июня 2011

Я почти уверен, что cURL будет вашей лучшей альтернативой.Легко начать, легко приспосабливаться к вашим потребностям и очень мощный.Узнать больше: http://php.net/manual/en/book.curl.php

1 голос
/ 05 июня 2011

Используйте file_get_contents () , если вы только извлекаете данные, это самый простой способ и всегда доступен.

Если вам нужно POST-данные, используйте cURL (расширение php, поэтому его не обязательно включать на вашем сервере)

Сокеты нужны только в случае необходимостичто-то отличное от http, https или ftp.
(для поддерживаемых протоколов отметьте «Registered PHP Streams» в вашем phpinfo)

Если вы хотите загрузить страницу, включающую css и т. д., выВозможно, вы захотите посмотреть wget
Стандартный инструмент командной строки Linux для загрузки контента.

<?php
chdir('/path/to/store/the/files/');
system('wget -E -H -k -K -p -nd http://www.example.com/'); // use passthru() instead of system if you want to see the output/errors.
?>

(я не знаю, что означают все эти параметры, я простоскопировал этот фрагмент из здесь , ознакомьтесь с руководством для подробностей)

1 голос
/ 05 июня 2011

Однажды я увидел компонент Zend Framework в качестве http-клиента.
Я думаю, что это самый простой и мощный способ сделать такого паука. Я пытаюсь вспомнить, как его звали.

Это Zend_Http_Client. Пример:

$client = new Zend_Http_Client('http://wiki/');
$response = $client->request(); 
print_r($response->getBody());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...