【问题标题】:Which PHP function best suited for retrieving web server data哪个 PHP 函数最适合检索 Web 服务器数据
【发布时间】:2011-06-05 10:11:16
【问题描述】:

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

如果我在查看维基百科文章时使用 PHP 保存纯文本副本,如果您愿意,可以使用离线缓存,哪种检索数据的方法最合适?

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

【问题讨论】:

    标签: php http curl


    【解决方案1】:

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

    如果您需要 POST 数据,请使用 cURL(一个 php 扩展,因此不能保证在您的服务器上启用它)

    仅当您需要 http、https 或 ftp 以外的其他内容时才需要套接字。
    (对于支持的协议,请检查 phpinfo 中的“Registered 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 复制了这个sn-p,查看manual 了解详细信息)

    【讨论】:

    • 我正在使用 file_get_contents() 和分钟但是它显然不保留样式表等的相对路径,因此缩小了使用范围。我可以结合使用 cURL 和前面的函数来请求和接收数据。
    • 等一下...file_get_contents() 始终可用?我认为 PHP 配置可能不允许将 URL-s 传递给这个函数,实际上有 个服务器不允许它......
    • 非常感谢你提醒我wget!我忘记了在 Cpanel 上配置 CronJob 时使用了这个和其他一些 linux 命令。
    【解决方案2】:

    我很确定 cURL 将是您的最佳选择。易于上手,易于根据您的需求进行调整并且非常强大。了解更多:http://php.net/manual/en/book.curl.php

    【讨论】:

    • cURL 与 XML 解析器结合起来应该做同样的伎俩。
    【解决方案3】:

    我曾经看到 Zend 框架的一个组件是一个 http 客户端。
    我认为做这样的蜘蛛是最容易和最强大的。我正在努力记住它的名字。

    它是Zend_Http_Client。示例:

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

    【讨论】:

    • 哇,我以前没见过。告诉我,这通常可以通过 PHP 访问吗?我在在线手册中找不到 zend_http_client。
    • @Lee:您必须下载 Zend 框架,然后将其包含在您的应用程序中。你可以找到更多有用的东西
    • 为此 +1。使用 Zend 或 CakePHP 之类的框架可以将所有繁重的工作从您身上抽离出来,这样您就可以专注于手头的任务。我不确定 CakePHP,但使用 Zend,您可以选择使用框架的哪些部分,而无需使用整个套件 + caboodle。
    • 太好了,我不知道这些事情。我只使用 PHP 和 cURL 等其他库进行编程。伟大的 cmets。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 2014-04-21
    相关资源
    最近更新 更多