PHP самый высокий каталог - PullRequest
1 голос
/ 16 мая 2011

Извините, что беспокою вас из-за чего-то тривиального. Я не могу правильно сформулировать вопрос, чтобы получить результат в любой строке поиска, я пробовал Google и здесь, но не получил соответствующих ответов.

В настоящее время я настраиваю оператор включения, и файлы PHP из разных папок должны включать в себя одни и те же файлы, а именно: "(Top directory) /public_html/Include/Head.php".

Я не уверен, как заставить PHP искать public_html в верхнем каталоге. Первоначально я думал, что это было то, для чего "..", но, похоже, ведет себя странно. Сомоне, пожалуйста, объясните?

Вот что я использую:

<?php include("../public_html/Include/Head.php") ?>

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

Ответы [ 4 ]

3 голосов
/ 16 мая 2011

Определите некоторую глобальную константу: define('TOP_DIR', '/www/'), затем используйте это во всех ваших включениях:

include(TOP_DIR.'public_html/Include/Head.php');

Поместите это define() в какое-то легкодоступное место и включите его в любойстраница вам нужна.Это становится намного проще, если вы используете платформу, которая всегда имеет одну точку входа, такую ​​как CodeIgniter.Тогда вы можете просто иметь файл констант и настроек, которые вы включаете в файл точек входа, и вы знаете, что эти вещи всегда будут доступны.

2 голосов
/ 16 мая 2011

Вы можете предварительно добавить корень документа, чтобы у вас была согласованная отправная точка, и вам не пришлось бы беспокоиться о обходе в вашем конкретном случае, например,

include($_SERVER['DOCUMENT_ROOT'].'/Include/Head.php')

или, для решения для всего приложения, вы можете просто добавить Include в путь включения:

set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'].'/Include');

http://php.net/manual/en/function.set-include-path.php

2 голосов
/ 16 мая 2011

Импорт файлов PHP немного странный, если вы хотите импортировать файл, который вам нужен, используйте это вместо:

<?php include(dirname(__FILE__) . "../Include/Head.php") ?>

Причина в том, что если у вас есть файл в (Top directory)/public_html/myfile.phpвключает этот файл, относительное включение будет относиться к myfile.php, а не к включенному файлу.

1 голос
/ 16 мая 2011

Есть несколько вещей, которые влияют на то, что вы пытаетесь достичь.

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

Во-вторых, может применяться концепция укоренения или укоренения. В зависимости от вашей системы, верхний каталог / (или \) может быть, а может и не находиться там, где вы обслуживаете файлы. Например, вы можете установить верхнюю папку определенного веб-сайта в качестве определенной папки в вашей файловой системе (используя Apache). Это считается «рутированием» веб-сайта в эту папку. Ни один пользователь или браузер не может «видеть» файлы из своих родительских папок.

PHP, однако, обычно не имеет того же места, что и веб-сайт.

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

Специфика того, каким должен быть ваш путь, полностью зависит от системы.

...