哪种PHP函数最适合检索Web服务器数据

时间:2011-06-05 10:11:16

标签: php http curl

我认为在查看特定网站时记录浏览或执行某些任务的一种有趣方式是创建某种覆盖(前端)以位于浏览器视图窗口的顶部并在后面解析PHP网络服务器数据。这些对于基于脚本的代理和广告等服务非常常见。

如果我在查看维基百科文章的时候使用PHP来保存纯文本副本,那么如果你愿意的话,可以使用哪种方法来检索数据?

使用流函数(file_get_contents,file等..)或cURL / core PHP HTTP请求甚至套接字? (虽然修补TCP / IP不是最简单的方法)。

3 个答案:

答案 0 :(得分:1)

我曾将Zend Framework的一个组件视为http客户端 我认为做这种蜘蛛是最容易和最强大的。我想记住它的名字。

这是Zend_Http_Client。例如:

$client = new Zend_Http_Client('http://wiki/');
$response = $client->request(); 
print_r($response->getBody());

答案 1 :(得分:1)

我很确定cURL会是你最好的选择。易于上手,易于根据您的需求进行调整,功能非常强大。了解详情:http://php.net/manual/en/book.curl.php

答案 2 :(得分:1)

如果您只是检索数据,请使用 file_get_contents(),这是最简单的方法,并始终可用。

如果您需要POST数据,请使用cURL(php-extension,因此无法保证在您的服务器上启用)

只有在您需要http,https或ftp以外的其他内容时才需要套接字 (对于支持的协议,请检查phpinfo中的“已注册的PHP Streams”)

如果您想下载包含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.
?>

(我不知道所有这些参数是什么意思,我只是从here复制了这个代码段,结帐manual了解详细信息)