php 子目录这两种写法区别在哪?

2015-05-09 08:23:28 +08:00
 YAFEIML
不懂就要问
$filename_full = 'cache'.$filename;
$filename_full = './cache1'.$filename;
$filename_full = './cache1/'.$filename;
2815 次点击
所在节点    PHP
13 条回复
Livid
2015-05-09 08:24:39 +08:00
1 和 2 是一样的,就是单纯的字符串连接。

3 的话,是访问 cache 子目录下的文件。
Septembers
2015-05-09 08:38:42 +08:00
这种写法存在安全问题
see http://zone.wooyun.org/content/2196
Septembers
2015-05-09 08:40:41 +08:00
这种写法存在潜在安全问题
whatisnew
2015-05-09 08:42:13 +08:00
没看懂。。。
Tink
2015-05-09 08:44:11 +08:00
一二都是当前目录下的cacheXXXXXX,第三个是cache目录下的XXXXXXX
bdbai
2015-05-09 09:25:42 +08:00
如果$filename有..然后你又做删除操作的话要小心了
elvba
2015-05-09 09:34:30 +08:00
楼主再看看这两个,能看出是什么意思么?
$filename_full = '/cache1/'.$filename;
$filename_full = '../cache1/'.$filename;
YAFEIML
2015-05-09 10:58:52 +08:00
@elvba
$filename_full = '/cache1/'.$filename; //根目录吧
$filename_full = '../cache1/'.$filename;//上级目录吧
randyzhao
2015-05-09 11:42:46 +08:00
@Livid 哈哈 没准 $filename = "/test.php"; 呢
lilydjwg
2015-05-09 13:40:58 +08:00
PHP 没有连接文件路径的函数么?
YAFEIML
2015-05-09 13:44:16 +08:00
@Livid
@Septembers
@Tink
@bdbai
@elvba
@randyzhao
@lilydjwg
那么新的问题来了。。
loveyu
2015-05-09 14:30:23 +08:00
一般我做下realpath 然后再检测下
eastphoton
2015-05-09 21:31:54 +08:00
/filename 根目录
./filename 当前目录
../filename 表示上一级目录
filename 当前目录

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/189654

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX