6.2 相对路径和绝对路径
无论使用超链接的GET提交方式,还是使用FORM表单的GET或POST提交方式,初学者经常会遇到这样一个问题:如何在一个文件(HTML或PHP文件)中正确访问另一个文件(HTML文件、PHP文件或图像等文件)。这里引入相对路径和绝对路径两个概念解答这个问题。
6.2.1 绝对路径
绝对路径是与相对路径相对立的,它通常是一个完整的URL,该URL由以下两个部分构成。
(1)Scheme:用来描述寻找数据所采用的机制(也叫协议)。如http和ftp等。
(2)位置(Location):用来描述到哪儿去寻找数据的资源。
这两部分使用“://”分隔,例如“http://www.php.net/index.php”就是一个绝对路径URL,它表明了这样一个含义:使用http从一个域名为www.php.net的WEB服务器上获取index.php页面资源信息。
由于绝对路径无论出现在哪儿都代表相同的内容,因此绝对路径通常在访问系统外部资源时才使用,而访问系统内部资源时一般使用相对路径,方便程序的移植。
6.2.2 相对路径
对于代码编写人员,更多时候使用的是相对路径,这是由于使用相对路径方便项目的整体移植。与绝对路径不同,相对路径在不同的地方代表的内容是不同的。为了更好地理解相对路径和绝对路径,想象一下平时是如何使用电话号码的。以中国郑州为例,一个完整的号码是区号+号码(0371-66666666),这个完整的号码在中国境内是一个“绝对路径”,即在中国的任何城市拨打0371-66666666 号码,拨打的是同一个号码。而到了郑州后,只需拨打66666666即可,此时66666666这个号码是一个“相对路径”。中国不同的城市,66666666 号码所代表的“号码”各不相同,若在北京拨打 66666666,则访问的是010-66666666“资源”,以此类推。相对路径可以分为两类:server-relative路径与page-relative路径。
server-relative路径是以斜杠“/”开头的相对路径。在HTML中,以斜杠“/”开头的相对路径表示从WEB服务器的根目录下开始查找相应的资源文件。如果目录“C:/wamp/www”为Apache服务器的根目录,使用相对路径“/index.php”访问资源时,访问的是目录“C:/wamp/www”下的index.php页面;同理,使用相对路径“/6/register.html”访问资源时,访问的是目录“C:/wamp/www”中的目录“6”下的register.html文件。
page-relative路径不以斜杠开头。此时当文件1访问文件2(HTML页面、PHP程序或图片等)资源时,将从文件1的当前目录作为起点查找文件2资源。例如当目录“C:/wamp/www/6/”中的register.html文件使用超链接访问该目录下的register.php文件时,只需在register.html文件的超链接中直接指定register.php文件即可,register.html代码如下。
<a href="register.php?userName=victor&password=1234&confirmPassword=1234">
GET提交方式
</a>
使用目录分隔符时,尽量使用斜杠“/”分隔符(不是“\”分隔符),这样更有利于程序在不同操作系统(Windows和Linux等)间的移植。
6.2.3 相对路径其他概念
1.同一个目录下的资源访问
如果文件 1 和文件 2 在同一个目录,这两个文件间的相互访问直接使用文件名即可。假设register.html文件和register.php文件在同一个目录,register.html页面的FORM表单访问register.php文件时,register.html页面的FORM表单可以这样写:
<form action="register.php" method="post">
2.如何表示当前目录
“.”表示文件的当前目录。假设register.html文件和register.php文件在同一个目录,register.html页面的FORM表单访问register.php文件时,register.html页面的FORM表单也可以这样写:
<form action="./register.php" method="post">
3.如何表示上级目录
“../”表示文件所在目录的上一级目录,“../../”表示文件所在目录的上上级目录,以此类推。假设register.html 所在目录为“C:\wamp\www\6\”,register.php 所在目录为“C:\wamp\www\”,此时register.html页面的FORM表单访问register.php文件时,register.html页面的FORM表单应该这样写:
<form action="../register.php" method="post">
4.如何表示下级目录
如果文件1访问下级目录中的文件2,直接指定该目录和文件2的文件名即可。假设register.html文件所在目录为“C:\wamp\www\6\”,register.php文件所在目录为“C:\wamp\www\6\test\”,register.html页面的FORM表单访问register.php文件时,register.html页面的FORM表单可以这样写:
<form action="test/register.php" method="post">
共有条评论 网友评论