Используйте требуемый/включенный файл в качестве базового каталога в PHP

В настоящее время я использую index.php для включения другого файла, его структура выглядит следующим образом:

root / index.php
     / new/ index.php

И я использую

<?php
require_once("new/index.php");
?>

проблема в том, что все пути в нем неверны. Поскольку все пути основаны на new/index.php , когда я его включаю, все пути меняются на основе index.php. Есть ли способ позволить постороннему посетить index.php, но в то же время мой фактический код хранится в папке new/? Спасибо


person user782104    schedule 03.10.2013    source источник


Ответы (4)


Вы говорите о чем-то вроде

<?php echo '<img src="my_image.jpg">; ?>

Если это так, используйте косую черту, чтобы перейти к корню URL-адреса, а затем используйте полный путь оттуда, например

<?php echo '<img src="/images/my_image.jpg">; ?>

В противном случае ваши URL-адреса могут быть легко перепутаны.

person Patrick    schedule 03.10.2013

Изменить текущий каталог с помощью функции chdir.

person Elon Than    schedule 03.10.2013
comment
Это работает лучше для меня, потому что я запускаю модульные тесты, используя свою собственную структуру. - person Matt H; 20.06.2016

включать с абсолютным путем

require_once(dirname(__FILE__) . "/filename.php");

person Vikas Kumar    schedule 18.06.2014

Я не совсем уверен, о чем вы спрашиваете, но если вы хотите включить файл относительно вашего корня, это мое решение:

require_once($_SERVER['DOCUMENT_ROOT'] . '/new/index.php');
person Joao    schedule 03.10.2013