在PHP中获取使用https的网页(文本)内容而不使用curl

3

我正在使用一个非常简单的PHP脚本来检索网页的文本内容;

$homepage = file_get_contents('http://192.168.1.125:6547/quickstatus');
echo $homepage;

但是这个指令在https上不起作用,我没有curl的支持(我正在使用php编译器),有没有办法在没有curl的情况下检索使用https的页面的内容?

您链接的页面似乎表明支持cURL。 - Michael Mior
但它不起作用,不知道如何包含dll。 - DomingoSL
我建议您发布一个关于如何使其工作的问题。虽然有替代方案可以取代cURL,但我认为您会发现cURL是最干净的解决方案,让您更加满意。 - Michael Mior
3个回答

4

我认为,如果使用 file_get_contents 函数无法处理 https 地址,那么你的 PHP 安装中可能没有安装 openssl 扩展。这就是为什么 curl 和其他解决方案也不可行的原因。


2

file_get_contents()函数只有在PHP编译时包含openssl支持时才能正常工作。如果你的安装不包括它,可以重新编译(或重新安装二进制版本的)PHP。

请注意来自手册的以下警告:

当使用SSL时,Microsoft IIS会违反协议,在不发送关闭指示器的情况下关闭连接。当数据结束时,PHP将报告此错误为“SSL:致命协议错误”。为了解决这个问题,应该将error_reporting的值降低到不包括警告的级别。PHP 4.3.7及更高版本可以在使用https://封装器打开流时检测到有缺陷的IIS服务器软件,并抑制警告。当使用fsockopen()创建ssl://套接字时,开发人员负责检测和抑制此警告。

如果您正在尝试连接运行IIS的服务器,则可能也是解决方案之一。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接