PHP CURL与PECL_HTTP

sky*_*ree 3 php curl http 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接口。

除了更简单,更短的代码外,PECL_HTTP与cURL相比还有其他优势吗?

dus*_*uff 6

PHP curl扩展(以及curl本身)被认为比PECL HTTP扩展成熟得多。curl扩展是PHP核心发行版的一部分,而PECL HTTP扩展必须单独下载和安装,这一事实可以清楚地说明这一点。

如果您发现curl接口对于简单的请求不方便使用(我不能怪您),请记住您可以围绕它实现包装器功能来执行常见任务;例如,可能会写类似:

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);
}
Run Code Online (Sandbox Code Playgroud)