比如. 平时我们读取https链接时. 旧版本是可以运行的. 但php7.4会报以下警告.
代码语言:javascript复制file_get_contents('htts://www.qq.com');
// Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
$ghea = get_headers('htts://www.qq.com',1);
// Warning: get_headers(): Failed to enable crypto
要解决以上问题, 我们需要对这些函数的默认的流上下文进行配置. 如下代码.
代码语言:javascript复制 $contextOptions = [
'ssl' => [
'verify_host' => false,
'verify_peer' => false,
'verify_peer_name' => false
]
];
$context = stream_context_create($contextOptions);
file_get_contents($url, false, $context);
代码语言:javascript复制 stream_context_set_default(
[
'ssl' => [
'verify_host' => false,
'verify_peer' => false,
'verify_peer_name' => false
]
]
);
get_headers($url,1);
好了, 问题解决.
END