php include_once path - PullRequest
       21

php include_once path

7 голосов
/ 01 февраля 2012

Я пытаюсь найти способ, чтобы путь include_once(); начинался с начального каталога, а затем находил путь, например, вместо ../../../path/to/file У меня будет /path/to/file.Если я сделаю это /path/to/file, там не будет такого файла или каталога, вот мой прямой код

<?php
include_once("/assets/page_assets.php");
?>

Ответы [ 4 ]

12 голосов
/ 01 февраля 2012

Если у вас есть сервер Apache

<?php
include_once($_SERVER['DOCUMENT_ROOT'] . "/assets/page_assets.php");
?>

"/assets/page_assets.php" означает from the root of the disk, а не из корневой папки сервера. Если вы говорите о каком-то другом beginning directory, тогда определите физический путь (путь в файловой системе сервера, а не веб-путь) к нему как отдельную константу / переменную и добавьте его к включенному пути, как показано выше.

2 голосов
/ 01 февраля 2012

Вы можете указать включить путь явно:

<?php ini_set('include_path',ini_get('include_path').':../../../:');  ?>

Но, как отметил Cheery в комментарии, вы должны включить свой файл без косой черты:

<?php
include_once("assets/page_assets.php");
?>
1 голос
/ 01 февраля 2012

Для этого вы должны использовать путь от корня.В некоторых случаях это может выглядеть как /var/www/mysite.com/assets/page_assets.php.Один из способов найти этот путь - использовать __FILE__ (это 2 подчеркивания спереди и сзади).Если вы откроете это из файла, он покажет вам полный путь.Вы должны быть в состоянии использовать это, чтобы установить правильный полный путь.

0 голосов
/ 01 февраля 2012

Запустите ваш скрипт с chdir($_SERVER['DOCUMENT_ROOT']);

Теперь вы можете позвонить include("path/to/file.php");, и он начнет смотреть из корня сети.

...