【发布时间】:2011-03-05 12:52:48
【问题描述】:
在 PHP 中,在使用 http_get("https://...") 和使用 fsockopen("ssl ://...")、fputs() 和 fread()?
我最近看到了一些使用后者的实现。这只是旧的遗留代码还是有什么好的理由?
谢谢。
【问题讨论】:
标签: php sockets ssl https pecl
在 PHP 中,在使用 http_get("https://...") 和使用 fsockopen("ssl ://...")、fputs() 和 fread()?
我最近看到了一些使用后者的实现。这只是旧的遗留代码还是有什么好的理由?
谢谢。
【问题讨论】:
标签: php sockets ssl https pecl
http_get 需要一个 PECL 扩展,它不与 PHP 捆绑在一起。
fsockopen 使用起来更复杂(需要循环、手动发送标头、手动读取标头,并且通常需要更多代码),但它是 PHP 的一部分(它始终存在)。
在我看来,最好的故障安全选项是使用 http 包装器,如下所示:
file_get_contents('https://...')
然而,http 包装器有其自身的一组限制 - 没有摘要身份验证,没有自动处理编码内容等。因此,如果 PECL http extension 或 curl extension 可用,那么这些可能会更好选项。
【讨论】: