2012-01-26 5 views
0

Newby to php. Когда я делаю include(<filename>), содержимое <filename> буквально просто вставлено в прилагаемый файл? Я заметил множество примеров, в которых переменные упоминаются во включенном файле, а затем ссылаются на включенный файл.php include и переменные

Я пришел из мира Java, где import просто делает классы, определенные в импорте доступными.

Просто пытаюсь обернуть вокруг себя мою голову.

В частности, я настраиваю подключение к базе данных и не хочу включать имя пользователя/пароль в php-файл (php-сегменты на самом деле не отправляются клиенту, верно?) Это просто чувствует. .icky.

Спасибо!

+0

PHP-код выполняется на сервере. Если нет ошибки или неправильной конфигурации, необработанный PHP-код НИКОГДА не будет замечен удаленным пользователем, а только вывод выполнения кода. –

+1

* (ссылка) * http://php.net/include – Gordon

ответ

1

От the manual:

включаемой() оператор включает и оценивает указанный файл.

Приведенная ниже документа также применима к требованию().

Файлы включены на основе указанного пути к файлу или, если ни один не указан, указан путь include_path. Если файл не найден в include_path, include() будет, наконец, проверять собственный каталог вызывающего сценария и текущий рабочий каталог перед сбоем. Конструкция include() выдаст предупреждение, если он не сможет найти файл; это другое поведение от require(), которое будет генерировать фатальную ошибку.

Если путь определен как абсолютный (начиная с буквы диска или \ на Windows, или в системах Unix/Linux) или относительно текущего каталога (начиная с. Или ..) - include_path будет вообще игнорируется. Например, если имя файла начинается с ./, парсер будет искать в родительском каталоге, чтобы найти запрошенный файл.

Дополнительную информацию о том, как PHP обрабатывает файлы и путь включения, см. В документации по include_path.

Когда файл включен, код, который он содержит, наследует область изменения строки, в которой происходит включение. Любые переменные, доступные в этой строке в вызывающем файле, будут доступны в вызываемом файле с этой точки вперед. Однако все функции и классы, определенные во включенном файле, имеют глобальную область видимости.

+0

Пожалуйста, не включайте более крупные куски из руководства, которые на самом деле являются ответом, поскольку лицензирование руководства несовместимо с SO. Поэтому, пожалуйста, уважайте права авторов и составляйте собственный ответ с соответствующим цитированием. – hakre

+0

Можете ли вы направить меня к конфликту лицензирования? Благодарю. – j08691

+0

Кажется, вы ошибаетесь. Согласно http://www.php.net/license/index.php#doc-lic, который ссылается на http://creativecommons.org/licenses/by/3.0/, «вы свободны: делиться - копировать , распространять и передавать работу, в Remix - для адаптации работы, для коммерческого использования работы «при условии, что вы приписываете использование (что я и сделал)). – j08691

0

Как и в руководстве по PHP, необработанный PHP-код никогда не будет виден конечному пользователю, если вы специально не разработали свой код для этого, включая файл, который включает в себя только переменные и функции указанного файла.

0

Если вы хотите успокоить свой разум из-за жестко заданных учетных данных, просто убедитесь, что chmod имеет соответствующие разрешения. Разрешить владельцу читать, писать и выполнять, не разрешая всем другим использовать сценарий.

http://www.webweaver.nu/html-tips/chmod.shtml

Смежные вопросы