Я разрабатываю PHP-программу на MAMP и просто понимаю следующее шуточное поведение:
echo "<br/>PATH = ".dirname(__FILE__);
include 'include.php';
include.php:
<?php
echo "<br/>PATH = ".dirname(__FILE__);
?>
Результат:
PATH =/users/me/stuff/mamp_server/my_site (все строчные буквы)
PATH =/Пользователи/me/Stuff/mamp_server/my_site (смешанный случай)
Что вызывает это непоследовательное поведение и как я могу защитить его? (Обратите внимание: я не могу просто преобразовать все в нижний регистр, потому что приложение предназначено для Linux-сервера, где пути к файлам чувствительны к регистру.)
Update:
Эта проблема существует для __FILE__
и __DIR__
.
Похоже, что это может быть реальной проблемой, когда нет работы... собираюсь подать отчет об ошибке, если не услышу иначе.
Отчет об ошибке:
https://bugs.php.net/bug.php?id=60017
Обновление:
И еще одно примечание. Если вы делаете абсолютный путь, включите (...) на Mac, для него требуется версия смешанного варианта.