本文介绍了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://的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 04:18