require_once работает на Windows, но не Linux - PullRequest
0 голосов
/ 27 января 2011

В моей системе Windows XP require_once('/stuff.php'); работает нормально, но на сервере linux он говорит, что файл не найден, пока я не изменю его на require_once('stuff.php'); Есть ли какие-либо настройки, которые я могу изменить, чтобы эта работа работала на linux?

Ответы [ 5 ]

3 голосов
/ 27 января 2011

Вы, вероятно, хотите:

require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'stuff.php');

dirname(__FILE__) вернет текущий каталог, затем вы добавите специальный разделитель ОС и имя файла.

1 голос
/ 27 января 2011

Находится ли "stuff.php" в том же каталоге, что и файл, выполняющий include / require?

Если это так, то require_once('stuff.php') должно работать в обеих системах. В противном случае другие ответы здесь, вероятно, будут более полезными.

Для справки: http://www.php.net/manual/en/function.include.php

1 голос
/ 27 января 2011

Использование /file в linux заставит его выглядеть в корневой папке (сравните с C:\), попробуйте использовать ./stuff.php.

0 голосов
/ 27 января 2011

Используйте константу PHP DIRECTORY_SEPARATOR для слешей.

нравится

$path . DIRECTORY_SEPARATOR . 'file.php'
0 голосов
/ 27 января 2011

Еще одна идея - использовать переменную $ root, в которой хранится корень проекта ("/" для windows и "" для linx)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...