2014-01-11 4 views
0

Я работаю над школьным проектом. Мой индекс работает, но когда я нажимаю «Лаборатория 1 Q1», находясь в лаборатории/1/1.html, он приводит меня на страницу, но мой <?php include('/main-nav.php') ?> не работает. Я также пробовал <?php include($_SERVER['DOCUMENT_ROOT']."/mobile-nav.php") ?>, который не работал, и я считаю, что это потому, что я использую wamp, поэтому, как мне кажется, «root» - это C: \ wamp, и внутри там у меня есть www/school/index.php.PHP_include файл из вложенных папок

Как я могу работать с файловым файлом, который не был жестко закодирован?

+0

Первый вопрос: где находится 'main-nav.php' относительно файла, в который вы его включаете? – sachleen

ответ

3

Метод include использует серверные пути, так /main-nav.php ищет файл в корневой папке жесткого диска .

Одним из вариантов является использование относительного пути:

include('../../main-nav.php'); // Go up two levels 
+0

Это фактически вернет 2 каталога из текущего. –

+0

@RPM Да, это так! Вот что я отмечаю в комментарии. И если вы посмотрите на путь к своей странице «labs/1/1.html», похоже, ему, возможно, придется подняться на два уровня. – jszobody

+0

очень хорошо. –

1

Вы пробовали относительный путь?

<?php include('./main-nav.php') ?> 
+0

О, ты избил меня! – r3wt

0

Для включают путь, загляните в директиве include_path в вашем php.ini

вы также можете попробовать

<?php phpinfo() ?> 

и выполните поиск по директиве «include_path»

«/» не имеют смысла в ОС Windows.

+0

На самом деле '/' отлично работает в Windows. Предполагая, что вы действительно хотите начать с корневой папки на жестком диске. – jszobody

+0

Это нормально, но какой корень, если у вас есть 2 жестких диска, например. Он работает, но вы не уверены в результате. – Taz

+0

Вы можете быть абсолютно уверены в результатах. Таким образом, я запускаю ряд приложений для PHP на серверах Windows. – jszobody

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