入门 - 路径

  • 作者:KK

  • 发表日期:2016.8.17


前提准备

在网站目录下建a.txt文件,内容为"aaaa"

然后index.php写代码:

$content = file_get_contents('a.txt');
echo '文件内容是:' . $content;

前面《读文件》中已经介绍过file_get_contents,只要给它一个文件路径就可以将文件内容读出来嘛


父目录读取

将a.txt移动到上一层目录(如果你是放在D:\phpStudy\WWW的话就移动到D:\phpStudy目录)

然后将index.php的代码修改为:

$content = file_get_contents('../a.txt');
echo '文件内容是:' . $content;

也能读取到文件,其中传给file_get_contents的参数“../a.txt”这一段..就是说上一层目录


当前目录读取

将a.txt放回网站目录,然后file_get_contents('./a.txt')也能读出内容,因为.就是当前目录


小结

.在路径里表示当前目录,..表示父目录,我不知道这是不是国际标准,我只知道很多Windows、Unix和Linux都支持这样来表达目录


复杂点的目录表达式

D:\a\b\c\..\d这样的路径,其实在C后面的..表示上一级目录,表示从C回到上一层,就成了B,再接个\d,所以结果就是D:\a\b\d

D:\a\b\..\c\..\d等于D:\a\d

D:\a\b\c\..等于D:\a\b

再来.号的:D:\a\b\.\c等于D:\a\b\c,因为在b目录下再声明.就是从b目录(当前目录)出发就是没有换目录,所以就是在b后面找c目录

可以混用:D:\a\b\..\c\.\d就是D:\c\d


.号不总是当前目录

D:\a\b.txt这样就是指D:\b目录的a.txt这个文件,a.txt是一个整体,这个.号只是文件名的一部分,分开文件前缀名和后缀名而已

只有在.号前后都没有字母数字这些符号的时候,只有\号或者作为结尾时才是表示当前目录,比如D:\a\.\b这样.号左右都有\号,那独一个.号就表示所在的那个当前目录了(D:\a)


小练习

scandir这个函数可以扫描一个目录下的所有文件,你试试print_r(scandir('D:\'));就能输出D盘下的文件了

好了你要试试scandir('.')scandir('..')scandir('D:\a\b\..\c\.\d')的输出结果,确认一下各个目录是不是如我说的那样吧

至于每次返回结果都带有...,其实这两个也是文件,一个是当前目录,一个是上一层目录,以后的内容再教你怎么用吧