У меня есть несколько поддоменов, содержащихся в их собственном каталоге выше моего корневого сайта и папка с ресурсами в моем корневом каталоге. Например:
/ /assets/ /forums/ /blog/
Я пытаюсь потребовать () файлы на php-страницах в корневом каталоге, а подкаталоги, например, assets / include / form.php требуется () как в index.php в корневом каталоге, так и в index.php в каталог форумов. Однако внутри form.php требуется другое, пытаясь получить еще один файл, содержащийся в каталоге include.
Кажется, я не могу найти способ потребовать файл внутри этого form.php, где он будет работать как в index.php корневого каталога, так и в index.php каталога.
Есть ли способ, которым я могу явно потребовать файл, начинающийся с корневого каталога?
Существует несколько способов добиться этого.
form.php
require_once __DIR__ . '/otherfile.php';
Если вы используете PHP 5.2 или старше, вы можете использовать dirname(__FILE__)
вместо dirname(__FILE__)
. Подробнее о магических константах читайте здесь .
$_SERVER['DOCUMENT_ROOT']
Это абсолютный путь к корню вашего документа: /var/www/example.org/
или C:\wamp\www\
в Windows.
Корень документа – это папка, в которой находятся файлы вашего корневого уровня: http://example.org/index.php будет в $_SERVER['DOCUMENT_ROOT'] . '/index.php'
$_SERVER['DOCUMENT_ROOT'] . '/index.php'
Использование: require_once $_SERVER['DOCUMENT_ROOT'] . '/include/otherfile.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/include/otherfile.php';
Вероятно, это будет слишком сложно для вашего приложения, если это очень просто.
Вы также можете установить каталоги, в которых PHP будет искать файлы при использовании require()
или include()
. Проверьте здесь set_include_path()
.
Использование: require_once 'otherfile.php';
Заметка:
Я вижу, что некоторые ответы предлагают использовать URL-адрес внутри require()
. Я бы не предложил это, так как файл PHP будет разбираться до его включения. Это нормально для HTML-файлов или PHP-скриптов, которые выводят HTML, но если у вас есть только определение класса, вы получите пустой результат.
У вас есть 2 решения. Вы можете либо использовать полный URL-адрес для файла, например, если ваш файл находится в каталоге «lib», который вы можете использовать: require_once («http://www.mysite.com/lib/myfile.php»ðŸ˜‰
или
Вы можете попробовать функцию $ _SERVER ['DOCUMENT_ROOT'] в PHP, но это не всегда доказательство дурака.
Итак … вы можете использовать это, как в pgm1.php & pgm1.php, так и в REQUIRE или
INCLUDE работает!
function rURI($p){ for($w='',$i=1;$i<(count(explode('/',$_SERVER['PHP_SELF']))-1);$i++,$w.='../');return $w.$p; }
требуется rURI ('dirA / inc / Xpto.php'); // путь от корня
Если один уровень выше, используйте:
include('../header.php');
если два уровня выше:
include('../../header.php');
Больше, посетите: http://forums.htmlhelp.com/index.php?showtopic=2922
почему бы вам не использовать (../)
require('../folder/file.php');