我正在尝试使用PHPCrawl(http://sourceforge.net/projects/phpcrawl/)来拖曳通过HTTPS交付的网站。
我可以看到PHPCrawlerHTTPRequest类(openSocket方法)支持SSL:
// If ssl -> perform Server name indication
if ($this->url_parts["protocol"] == "https://")
{
$context = stream_context_create(array('ssl' => array('SNI_server_name' => $this->url_parts["host"])));
$this->socket = @stream_socket_client($protocol_prefix.$ip_address.":".$this->url_parts["port"], $error_code, $error_str,
$this->socketConnectTimeout, STREAM_CLIENT_CONNECT, $context);
}
问题在于对stream_socket_client的调用-尽管返回的error_code为零,但没有error_str,但this-> socket仍然为false。
该方法的文档指出以下内容:
(请参阅http://php.net/manual/en/function.stream-socket-client.php)
因此,我尝试使用注释部分中提供的示例,使用“stream_context_set_option”将verify_host和verify_peer设置为false来修改流上下文-两者似乎都无效。
我不太精通PHP或复杂的网络-有人知道吗:
或
我应该注意-我正在使用Facebook(HTTPS)作为测试服务器。
最佳答案
我发现了问题-
关于php - PHPCrawl无法创建SSL套接字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29403231/