枫林在线论坛精华区>>程序设计 |
[53238] 主题: 绝对路径与相对路径祥解 |
作者: (顾左右而言他) | ||
标题: 绝对路径与相对路径祥解[转载] | ||
来自: 218.79.*.* | ||
发贴时间: 2003年04月29日 23:17:10 | ||
长度: 2117字 | ||
新手在安装 Perl 程序的时候,对这绝对路径和相对路径常常搞不清 楚,不知道如何设置。希望看完本文后,能让你们对此不再糊涂。 1. 什么是绝对路径 ?什么是绝对路径的相对表示? 绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,比如, 你的 Perl 程序是存放在 c:/apache/cgi-bin 下的,那么 c:/apache/cg i-bin 就是 CGI-BIN 目录的绝对路径(如果你不清楚目录的绝对路径,可 以问你主页提供商,也可以用最后的程序自己来检测)。 绝对路径的相对表示其实很好理解,假设你的 Perl 程序是放在 c:/ apache/cgi-bin 下的,如果你要表示这个目录的绝对路径,除了上面说的 c:/apache/cgi-bin 外,你还可以用 . 来表示,因为你的程序就在当前 目录下的。其实这个问题和 DOS 下的 CD 命令类似的,你如果在 c:\win dows\system 目录下,现在要转换到 c:\windows 下,那么你可以用绝对 路径命令:cd c:\windows,也可以用绝对路径的相对表示命令:cd .., 你现在理解了吗? 要注意的是,如果你用的是 PWS 或 IIS WEB 服务器,那么路径必须 用绝对路径来表示,而不能用绝对路径的相对表示,千万要注意了! 2. 什么是相对路径?什么是 URL 相对路径? 这两种说法实际上表达的意思是一样的。比如,你的 Perl 程序 URL 是 http://www.CGIer.net/cgi-bin/test.cgi,调用图片 URL 是 ,如果 你要在你的程序中表示此图片的相对路径,那么可以写成 ,或者是 /gif /test.gif 。说白了,相对路径其实就可以理解为 URL。 3. 绝对路径如何检测? 运行如下子程序,返回变量 $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; } 4. 相对路径如何检测? 运行如下子程序,返回变量 $myurl 的值就是此 Perl 程序当前所在 目录的相对路径。 sub myurl { local $server_port,$fullurl; $server_port = ":$ENV{'SERVER_PORT'}" if ($ENV{'SER VER_PORT'} ne '80'); $fullurl = "http://$ENV{'SERVER_NAME'}$server_port$E NV{'SCRIPT_NAME'}"; $myurl = substr($fullurl,0,rindex($fullurl,"/" ;)); return $myurl; } |
||
========== * * * * * ==========
|
返回 |