PHP CURL与PECL_HTTP

时间:2014-07-21 02:41:26

标签: php http curl pecl

在PHP中,您可以使用PHP文件流功能(如file_get_contents())来处理HTTP请求,但是为了处理复杂的HTTP通信,cURL显然更好,更灵活。我已经使用cURL多年了,它永远不会让我失望。

最近,我尝试测试PECL_HTTP扩展,发现它甚至更简单,并且在大多数HTTP请求上工作得很好,至少在开始时是这样。但是,我仍然对PECL_HTTP扩展有疑问。

那么,PECL_HTTP是否像cURL一样强大而灵活?特别是对于不同类型的复杂HTTP通信?虽然PECL_HTTP可以缩短您的代码并使其更容易处理大多数"常规" HTTP请求,更复杂的HTTP请求呢?

与我已经知道的cURL相比,PECL_HTTP有一些缺点:

  1. cURL附带大多数PHP和Linux发行版,而PECL_HTTP扩展需要额外安装。
  2. cURL对不同语言使用相同的编码接口,而PECL_HTTP版本2甚至与版本1不兼容.PECL_HTTP版本2采用完全不同的API接口。
  3. 除了更简单和更短的代码之外,PECL_HTTP还有其他优势吗?

1 个答案:

答案 0 :(得分:6)

PHP curl扩展(以及curl本身)被认为很多比PECL HTTP扩展更成熟。这是因为curl扩展是PHP核心发行版的一部分,而PECL HTTP扩展必须单独下载和安装。

如果您发现卷曲界面很难用于简单请求(我不能责怪您),请记住您可以围绕它执行包装函数来执行常见任务;例如,人们可能会写一些类似的东西:

function curl_get($url, $options = array()) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt_array($ch, $options);
    return curl_exec($ch);
}