Intereting Posts
Как отправить форму с помощью PHP? mod_rewrite $ _GET Как подключиться к трем таблицам в Codeigniter Как очистить данные JSON, передаваемые через веб-сайты на целевом сайте Флажок «checked» -value перескакивает до более ранних значений массива, когда массив пуст Отключить родной класс Soap в PHP5 и использовать nuSoap? Лучший подход к расширению полей из валидатора Расширение PHP с помощью C ++? function.session-start отображается на странице входа в действие с другими правильными ссылками, почему так и как проверить сеанс для входа в действие-форму Сохранять порядок ключей (стабильный сортировка) при сортировке с помощью uasort PHP Естественный вид заголовков WordPress (в алфавитном и цифровом формате)? Почему я не могу получить свойство объекта, который я получаю из PHP? Yii 2.0 Проверка CSRF для запроса AJAX Использование MySQL, как мне выбрать ранг результата запроса для одной конкретной строки? Пошаговая миграция из Zend Framework с 1 по 2

PHP требует, чтобы файл из верхнего каталога

У меня есть несколько поддоменов, содержащихся в их собственном каталоге выше моего корневого сайта и папка с ресурсами в моем корневом каталоге. Например:

/ /assets/ /forums/ /blog/ 

Я пытаюсь потребовать () файлы на php-страницах в корневом каталоге, а подкаталоги, например, assets / include / form.php требуется () как в index.php в корневом каталоге, так и в index.php в каталог форумов. Однако внутри form.php требуется другое, пытаясь получить еще один файл, содержащийся в каталоге include.

Кажется, я не могу найти способ потребовать файл внутри этого form.php, где он будет работать как в index.php корневого каталога, так и в index.php каталога.

Есть ли способ, которым я могу явно потребовать файл, начинающийся с корневого каталога?

Solutions Collecting From Web of "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

Вы также можете установить каталоги, в которых 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&#xBB😉

или

Вы можете попробовать функцию $ _SERVER ['DOCUMENT_ROOT'] в PHP, но это не всегда доказательство дурака.

  • предположим, что у вас есть pgm1.php на http://www.domain.com/dir1/dir2/dir3/pgm1.php, которые включают или требуют «dirA / inc / Xpto.php».
  • и еще один pgm2.php в http://www.domain.com/dirZ1/dirZ2/pgm2.php, которые включают или требуют такой же «dirA / inc / Xpto.php».
  • и ваша конфигурация хоста не разрешает require / include ' http://www.domain.com/ ……'
  • Итак … вы можете использовать это, как в 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');