Базовое имя PHP ( __DIR__) возвращает _DIR_ на некоторых серверах
Я надеюсь, что кто-то здесь знает ответ на это. Я написал скрипт, который использует
basename( __DIR__ )
затем использует функцию, если существует файл.
На моем сервере это работает нормально, однако на другом сервере он на самом деле возвращает слово _DIR_
вместо пути к файлу.
Изменилось ли это с версией PHP или есть какие-то другие настройки, которые делают это так, что это не работает?
Наконец, есть ли лучший способ получить путь к файлу? Вот вся строка, которую я использую:
define('NIFTY_CONSTANT', trailingslashit (WP_PLUGIN_DIR . '/'. basename( __DIR__ ) ). '/lib/mdetect.php' );
(да, я знаю, что это функция WordPress, но это не вопрос WordPress, а вопрос PHP)
2 ответа
__DIR__
введен в PHP 5.3 . Дважды проверьте вашу версию PHP.
Ссылка: http://php.net/manual/en/language.constants.predefined.php
Если __DIR__
константа не работает на сервере A
, пока работает на сервере B
, тогда версия PHP является проблемой (как упомянуто @Shivan).
Вы можете просто проверить это, позвонив phpinfo()
на обоих серверах.
Вот быстрый обходной путь для вас:
// this should be at the top
if (!defined('__DIR__')) {
define('__DIR__', dirname(__FILE__));
}