Эквивалент запуска $ _SERVER ['DOCUMENT_ROOT'] при запуске php в терминале - PullRequest
0 голосов
/ 29 апреля 2010

Мне было интересно, есть ли какая-нибудь переменная, которая будет возвращать то, что возвращает $ _SERVER ['DOCUMENT_ROOT'], когда я вызываю PHP следующим образом:

Если нет, как люди справляются с этим делом? Я ищу возможность вызывать один и тот же скрипт (компилятор шаблонов) как в веб-браузере, так и в терминале.

Спасибо! Мэтт Мюллер

Ответы [ 3 ]

3 голосов
/ 29 апреля 2010

Я не рекомендую команду getcwd() для этого, потому что вы не можете быть уверены, куда указывает cwd, если вы не сделали chdir ранее (что означает, что вы уже знаете, в каком каталоге вы находитесь) , Рабочий каталог может быть определен в конфигурации php и может варьироваться между apache и CLI, и некоторые фреймворки php изменяют его при запуске.

Используйте dirname(__FILE__), он всегда работает, если вы находитесь в контексте Apache или Cli (плюс он работает на Windows и Unix), и если вам нужно перемещаться внутри файлов проекта, вы можете просто использовать относительные пути.

1 голос
/ 29 апреля 2010

Я думаю, что вы должны использовать функцию getcwd для получения текущего каталога (или просто dirname (__ FILE__), если ваш скрипт является лучшим). Тогда вам нужно только обязательно запустить скрипт из вашего DOCUMENT_ROOT. Как то так:

cd /var/www/
php ./scripts/top.php
0 голосов
/ 29 апреля 2010

корень документа с жестким кодом в нем.
жесткий код - это всегда решение

...