php判断url并补全

第一种方式:判断路径是否url格式,并从配置中补全

/**
 * 判断路径是否是绝对路径,如果不是拼接至绝对路径
 * @param  string $url          路径地址
 * @return string               返回格式
 */
function splicing_route($url) {
    if ($url) {
        $config = ["domain"=>"http://域名"];//获取配置,但是可以写死
        $preg = "/^http(s)?:\\/\\/.+/";
        //判断是否是数组
        if (is_array($url)) {
            //多维拼接
            foreach ($url as $key => &$value) {
            //正则判断
                if(!preg_match($preg,$value)){
                    $value = $config['domain'].$value;
                }
            }
        }else{
            // 单项拼接 正则判断
            if(!preg_match($preg,$url)){
                $url = $config['domain'].$url;
            }
        }
        return $url;
    } 
}
复制代码

第二种方式:获取配置的上传域名、自动获取域名并拼接、没有判断数组

 function getImageAttr($image) { 
 //判断图片路径是否完整
           if (stripos($image, 'http') === 0 || $image === '' || stripos($image, 'data:image') === 0) {
                        $image  =  $image;
                } else {
                	//获取配置的上传域名
                    $upload = \think\Config::get('upload');
                    if (!empty($upload['cdnurl'])) {
                            $image  =   $upload['cdnurl'] . $image;
                    } else {
                    //自动获取域名并拼接
                        $http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
                           $image   =  $http_type . $_SERVER['HTTP_HOST'] . $image;
                    }
                }
                return $image;
    } 
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享