PHP CURL API 是否比使用流进行 HTTP/HTTPS 访问更干净/更快/更好?


Is the PHP CURL api cleaner/faster/better than using streams for HTTP/HTTPS access?

我目前只使用PHP流上下文功能(见 http://us2.php.net/manual/en/function.stream-context-create.php)来访问HTTP资源,我已经能够成功地使用它来做PUT,DELETE,POST,管理cookie并做我需要做的一切。我最初开始使用它是因为我在早期的 Debian PHP cURL 构建中遇到了 SSL 问题(Apache 进程中存在 OpenSSL 双重初始化问题,在尝试访问 SSL URL 时出错):这些现在可能已修复,但我没有机会回去。

在与朋友的讨论中,他认为cURL api更快/更好,所以我想问:对于哪个选项更好,以及在哪些方面更优越,是否有任何明确的经验/知识?

根据我的经验,流非常整洁。您可能已经知道了,但是这里有一篇关于流的帖子,以防万一:

http://fabien.potencier.org/article/44/php-iterators-and-streams-are-awesome

Curl很好,快速,而且简单;但老实说,出于性能原因,我不喜欢其中一个。我从未测量过,但我怀疑与首先执行远程请求的开销相比,它会产生太大差异。

在性能方面,cURL 始终以很大的优势获胜。我不会否认它更难使用,对于一般用途可能无关紧要,但差异非常显着,我认为值得指出。