我使用下面的PHP代码加载SSL网站的证书属性:
$dnsname = 'www.google.com';
$dnsport = 443;
$stream = stream_context_create (array("ssl" => array("capture_peer_cert" => true)));
$url = stream_socket_client("ssl://".$dnsname.":".$dnsport, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $stream);
$content = stream_context_get_params($url);
当SSL工作正常时,一切正常。但是如果无法打开SSL连接,则脚本会生成PHP警告:
stream_socket_client():无法连接到ssl://www.google.nl:443(Kan geen verbinding maken omdat de doelcomputer de verbinding actief heeft geweigerd。 )在第44行的C:\ inetpub \ monitor \ autotask \ checkssl.php
如何预防警告?我需要一个" if"但不知道该检查什么..请帮忙
答案 0 :(得分:1)
使用@
运算符取消警告,并根据return value自行检查结果:
$socket = @stream_socket_client(...);
if ($socket === false) {
die("Socket error: $errstr");
}