本文介绍了PRIG_MATCH仅允许在URL中使用https://的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我希望在phpbb中只允许使用https://链接作为远程头像图像,以避免混合内容。这似乎是用来检查输入的url是否正确的代码(可在/phpbb/avtal/driver/emote.php中找到):
if (!preg_match('#^(http|https|ftp)://(?:(.*?.)*?[a-z0-9-]+?.[a-z]{2,4}|(?:d{1,3}.){3,5}d{1,3}):?([0-9]*?).*?.('. implode('|', $this->allowed_extensions) . ')$#i', $url))
{
$error[] = 'AVATAR_URL_INVALID';
return false;
}
我想在此代码块之前添加一个if{}-条件,以便在用户从不安全的服务器选择图像时提供信息性错误消息。有人能帮我定义正确的preg_Match()字符串吗?
推荐答案
根据@casimir的建议,我使用了以下代码并运行正常:
$urlchk = parse_url($url);
$urlscheme = isset($urlchk['scheme']) ? $urlchk['scheme'].'://' : 'http://';
if ($urlscheme=='http://'){
// error message
}
这篇关于PRIG_MATCH仅允许在URL中使用https://的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!