这个问题应该很简单......为了重现该场景,我设置了以下结构:
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环境时会将斜杠视为分隔符。
并且仅当进行的是目录时,尾随斜杠才可以接受。