相对路径与绝对路径的不同处
来源:本站时间:2013/10/21 11:37:05

可能初接触网站建设的人对绝对路径和相对路径的概念还有些模糊,今天聊城网络公司吉恩创想就在此详细的介绍一下。

1. 什么是相对路径?什么是URL相对路径?

  这两种说法实际上表达的意思是一样的。比如,你的

Perl 程序 URL http://www.252000.com/cgi-bin/test.cgi,调用图片

URL http://www.252000.com/gif/test.gif,如果你要在你的程序中表示此图片的相对路径,那么可以写成

http://www.252000.com/gif/test.gif,或者是 /gif/test.gif 。说白了,相对路径其实就可以理解为 URL

2.如何检测相对路径?

  运行如下子程序,返回变量 $myurl 的值就是此 Perl

程序当前所在目录的相对路径。

sub myurl

{

    local $server_port,$fullurl;

    $server_port = ":$ENV{'SERVER_PORT'}"

if ($ENV{'SERVER_PORT'} ne '80');

    $fullurl

    = "http://$ENV{'SERVER_NAME'}$server_port$ENV{'SCRIPT_NAME'}";

    $myurl       =

substr($fullurl,0,rindex($fullurl,"/"));

    return $myurl;

}

3. 什么是绝对路径 ?什么是绝对路径的相对表示?

  绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,比如,你的Perl 程序是存放在 c:/apache/cgi-bin 下的,那么 c:/apache/cgi-bin 就是 CGI-BIN 目录的绝对路径(如果你不清楚目录的绝对路径,可以问你主页提供商,也可以用最后的程序自己来检测)。绝对路径的相对表示其实很好理解,假设你的 Perl 程序是放在c:/apache/cgi-bin 下的,如果你要表示这个目录的绝对路径,除了上面说的  c:/apache/cgi-bin 外,你还可以用 . 来表示,因为你的程序就在当前目录下的。其实这个问题的DOS 下的 CD 命令类似的,你如果在 c:windowssystem 目录下,现在要转换到c:windows 下,那么你可以用绝对路径命令:cd c:windows,也可以用绝对路径的相对表示命令:cd ..,你现在理解了吗?

  要注意的是,如果你用的是PWS IIS WEB 服务器,那么路径必须用绝对路径来表示,而不能用绝对路径的相对表示,千万要注意了!

4. 如何检测绝对路径?

  运行如下子程序,返回变量

$mypath 的值就是此 Perl 程序当前所在目录的绝对路径。

sub mypath

{

    local

$temp;

    $temp=__FILE__;

    $temp=~ s/\///g if ($temp=~/\/);

    if ($temp) {

      $mypath=substr($temp,0,rindex($temp,"/"));

    }

    else

{   $mypath=substr($ENV{'PATH_TRANSLATED'},0,rindex($ENV{'PATH_TRANSLATED'},"\"));

      $mypath=~ s/\///g;

    }

    return

$mypath;

}