2014-11-05 71 views
0

我试图读取使用的file_get_contents()的文件,但我得到一个“未能打开流”的警告,当我尝试做没有绝对路径。奇怪的file_get_contents行为

<?php 
    $file = 'C:\wamp\vhosts\testsite.com\a\new.txt'; //works 
    $file = '\a\new.txt'; //didn't work 
    $file = '/a/new.txt'; //didn't work 
    echo file_get_contents($file); 

使用WAMP ,所以不存在权限问题。 我的问题是,什么是错的,使用相对路径?提前

谢谢!

+1

'$ file ='a/new.txt';'或'$ file ='../a/new。 txt';'取决于脚本的执行位置。你也可以做'/ var/user/you/public_html/folder/new.txt',这就是为什么你的第二和第三不起作用。 – 2014-11-05 17:16:56

+0

相对的意思,相对于你所在的文件夹。使用'echo getcwd()。 “\ n”;'查看当前目录。如​​果不是'C:\ wamp \ vhosts \ testsite.com',那么你可以使用'chdir()'去那里或者把路径追加到' include_path'。 – 2014-11-05 17:20:10

回答

1

如果与被认为是绝对路径斜杠开始的文件名。所以,它将相对于根来解决目录。在你的情况下,'/a/new.txt'将在'c:/a/new.txt'搜索。要找到与执行目录相关的文件,请使用圆点代替前导斜杠或前缀:'a/new.txt''./a/new.txt'

+0

我喜欢附加的和很好的解释的答案。 +1 – 2014-11-05 17:24:17

+0

Cheers @ Fred-ii- – fejese 2014-11-06 10:16:14

+0

Cheers Fejese :) – 2014-11-06 16:03:21