记录一下:
场景:邮箱发送验证码类在php7.3+环境中报错:
filter_var(): explicit use of FILTER_FLAG_SCHEME_REQUIRED and FILTER_FLAG_HOST_REQUIRED is deprecated
原因:查资料得知,php7.3+弃用了FILTER_FLAG_SCHEME_REQUIRED函数
解决方式:
PHPMailer.php 3599行
if (filter_var('http://' . $host, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED)) {
//Is it a syntactically valid hostname?
return true;
}
更改为:
if (preg_match('/http:\/\/[\w.]+[\w\/]*[\w.]*\??[\w=&\+\%]*/is','http://' . $host)) {
//Is it a syntactically valid hostname?
return true;
}
其实就是url地址地址的正则验证。