Curl和HttpRequest之间的PHP区别
Posted
技术标签:
【中文标题】Curl和HttpRequest之间的PHP区别【英文标题】:PHP Difference between Curl and HttpRequest 【发布时间】:2010-10-26 13:50:36 【问题描述】:我需要向服务器执行 RAW POST (PUT a $var) 请求,并接受来自该页面的结果作为字符串。还需要添加自定义HTTP头信息(如x-example-info:2342342)
我有两种方法
卷曲 (http://us.php.net/manual/en/book.curl.php) PHP HTTP 使用 HTTPRequest (http://us.php.net/manual/en/book.http.php)两者有什么区别?什么更瘦?快点?两者在我看来几乎相同......
【问题讨论】:
【参考方案1】:Curl 与 PHP 捆绑在一起,HTTPRequest 是一个单独的 PECL 扩展。
因此,CURL 更有可能安装在您的目标平台上,这几乎是大多数项目的决定因素。如果您打算只在您个人有能力安装 PECL 扩展的服务器上安装软件,我只会考虑使用 HTTPRequest;如果您的客户将进行自己的安装,那么安装 PECL 扩展通常是不可能的。
This page 似乎暗示 HTTPRequest 无论如何都使用 CURL。不过,听起来它可能会为 curl_multi_*() 提供更优雅的接口。
【讨论】:
【参考方案2】:HTTPRequest(和 PECL 扩展)建立在 libcurl 之上。
http://us.php.net/manual/en/http.requirements.php
HTTPRequest 实际上只是执行相同任务的一种更简单/语法更友好的方式。
正如 Frank Farmer 所提到的,您更有可能拥有已安装 curl 的目标平台,并且可能难以让托管服务提供商安装 PECL 库。
【讨论】:
【参考方案3】:HTTPRequest 是 curl 的“一种”包装器。手册中的这两个引用应该给你一个线索:
如果使用 CURL 支持构建,它会提供强大的请求功能。并行请求可用于 PHP 5 及更高版本。
必须使用 » libcurl 支持构建扩展以启用请求功能 (--with-http-curl-requests)。需要等于或高于 v7.12.3 的库版本。
说过(并说我自己从未使用过这个扩展),看起来如果你想让你的代码看起来更面向对象,你可以选择这个,但它可能会慢一点,虽然没有什么可比的与您将要拨打的外部电话,所以我不会考虑性能来做出我的选择。我会优先考虑 curl 是内置的这一事实,而另一个则必须自己添加,如果您想将应用程序托管在您无法控制的共享环境中,这很不方便并且会降低可移植性。
对于您在问题中解释的需求,我肯定会选择 curl。
【讨论】:
以上是关于Curl和HttpRequest之间的PHP区别的主要内容,如果未能解决你的问题,请参考以下文章
HostGator 上的 Linux 服务器显示未找到“HTTPRequest”类