функция проверки файлов всегда будет «игнорировать» ведущий слеш

Этот вопрос должен быть довольно простым ……. Чтобы воспроизвести сценарий, я настроил эту структуру:

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() функция.

3

Решение

Поскольку практически все, что имело значение, появилось в мире Unix, где разделитель является косой чертой, многие системы при переносе в среду Windows будут рассматривать любую косую черту как разделитель.

Конечный слеш допустим только в том случае, если он является каталогом.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]