相对路径转绝对路径

jerry thinkphp 2015年11月19日 收藏
相对路径转绝对路径
  1. /**
  2.  * 相对路径转网络绝对路径
  3.  * @param string $file
  4.  * @return string
  5.  */
  6. function dirToHttpUrl($file) {

  7.     //判断文件是否存在
  8.     if (!file_exists($file)) {
  9.         return false;
  10.     }

  11.     //域名
  12.     $nowUrl = dirname('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);    //当前域名
  13.     $tempUrl = explode('.', $_SERVER['HTTP_HOST']);
  14.     $dirUrl = 'http://www.'.$tempUrl[1].'.'.$tempUrl[2].'/';                    //主域名

  15.     //文件路径的层次统计
  16.     $tempFile = explode('../', $file);
  17.     $tempNum = array_count_values($tempFile);

  18.     if (array_key_exists('', $tempNum)) {
  19.         $fileNum = $tempNum[''];
  20.         $fileEnd = end($tempFile);
  21.     } else {
  22.         $fileNum = 0;
  23.         $fileEnd = '/'.substr($tempFile[0], 2);
  24.     }

  25.     //域名层次统计
  26.     $tempWeb = explode('/', $nowUrl);
  27.     $tempWeb = array_slice($tempWeb, 3);
  28.     $webNum = count($tempWeb);

  29.     //文件对应的域名
  30.     if ($fileNum > $webNum) {
  31.         $nowUrl = $dirUrl;
  32.     }

  33.     //返回
  34.     return $nowUrl.$fileEnd;

  35. }

  36. //dirToHttpUrl('./1.jpg');