文件检查功能将始终“忽略”前导斜杠

时间:2016-01-17 14:53:17

标签: php file operating-system

这个问题应该相当简单.......为了重现这个场景,我设置了这个结构:

Root
 |----/test/abc.txt
 |----index.php

的index.php

$root = __DIR__;

echo is_file($root . "/test/abc.txt") ? "true" : "false";
echo is_file($root . "//test/abc.txt") ? "true" : "false";
echo is_file($root . "///test/abc.txt") ? "true" : "false";

echo is_dir($root . "/test") ? "true" : "false";
echo is_dir($root . "//test") ? "true" : "false";
echo is_dir($root . "///test") ? "true" : "false";

echo file_exists($root . "/test") ? "true" : "false";
echo file_exists($root . "//test") ? "true" : "false";
echo file_exists($root . "///test") ? "true" : "false";

输出: is_file()

true
true
true

输出: is_dir()

true
true
true

输出: file_exists()

true
true
true

前导斜杠似乎被“忽略”,无论它仍然可以找到文件位置。我认为斜杠表示文件夹目录,但我似乎错了。这里发生了什么?

这可能是一个环境设置问题,但我还没有设置linux进行测试。

我目前的环境是在Windows操作系统,XAMPP下。

更新:

这似乎也适用于is_dir()file_exists()功能。

1 个答案:

答案 0 :(得分:0)

由于几乎所有的价值都来自Unix世界,其中分隔符是正斜杠,许多系统在移植到窗口环境时都会将斜杠视为分隔符。

只有当前面的内容是目录时,才能接受尾部斜杠。