比如. 平时我们读取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