Heim  >  Artikel  >  php教程  >  PHP将相对路径URL转换为绝对路径URL

PHP将相对路径URL转换为绝对路径URL

WBOY
WBOYOriginal
2016-06-06 19:38:431382Durchsuche

无详细内容 无 /** * 将一个URL转换为完整URL * PHP将相对路径URL转换为绝对路径URL */ function format_url($srcurl, $baseurl) { $srcinfo = parse_url($srcurl); if(isset($srcinfo['scheme'])) { return $srcurl; } $baseinfo = parse_url($baseurl); $ur

/**
    * 将一个URL转换为完整URL
    * PHP将相对路径URL转换为绝对路径URL
    */
    function format_url($srcurl, $baseurl) {  
    $srcinfo = parse_url($srcurl);
    if(isset($srcinfo['scheme'])) {
        return $srcurl;
    }
    $baseinfo = parse_url($baseurl);
    $url = $baseinfo['scheme'].'://'.$baseinfo['host'];
    if(substr($srcinfo['path'], 0, 1) == '/') {
        $path = $srcinfo['path'];
    }else{
        $filename=  basename($baseinfo['path']);
        //兼容基础url是列表
        if(strpos($filename,".")===false){
            $path = dirname($baseinfo['path']).'/'.$filename.'/'.$srcinfo['path'];
        }else{
            $path = dirname($baseinfo['path']).'/'.$srcinfo['path'];
        }
        
    }
    $rst = array();
    $path_array = explode('/', $path);
    if(!$path_array[0]) {
        $rst[] = '';
    }
    foreach ($path_array AS $key => $dir) {
        if ($dir == '..') {
        if (end($rst) == '..') {
            $rst[] = '..';
        }elseif(!array_pop($rst)) {
            $rst[] = '..';
        }
        }elseif($dir && $dir != '.') {
        $rst[] = $dir;
        }
    }
    if(!end($path_array)) {
        $rst[] = '';
    }
    $url .= implode('/', $rst);
    return str_replace('\\', '/', $url);
    }
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:短信发送Nächster Artikel:获取客户端真实ip地址