这个问题应该相当简单.......为了重现这个场景,我设置了这个结构:
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()
功能。
答案 0 :(得分:0)
由于几乎所有的价值都来自Unix世界,其中分隔符是正斜杠,许多系统在移植到窗口环境时都会将斜杠视为分隔符。
只有当前面的内容是目录时,才能接受尾部斜杠。