当前位置 : 主页 > 网络编程 > PHP >

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

来源:互联网 收集:自由互联 发布时间:2021-07-03
/*** 将一个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
 
/**
* 将一个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);
}

网友评论