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


file checking function will always "ignore" leading slash

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

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

索引.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 OS,XAMPP下。

更新:

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

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

并且仅当进行的是目录时,尾随斜杠才可以接受。