Предупреждение: require_once(): http://оболочка отключена в конфигурации сервера allow_url_include = 0
Я пытаюсь включить php файл на страницу через
require_once(http://localhost/web/a.php)
Я получаю сообщение об ошибке
Warning: require_once(): http:// wrapper is disabled in the server configuration by allow_url_include=0
Я изменил allow_url_include=1
в php.ini, и это сработало, но я не думаю, что все позволят мне изменить файл php.ini.
Итак, есть ли способ сделать это?
Ответы
Ответ 1
Предупреждение генерируется, потому что вы используете полный URL-адрес для файла, который вы включаете. Это НЕ правильный путь, потому что таким образом вы получите HTML-код с веб-сервера. Использование:
require_once('../web/a.php');
чтобы веб-сервер мог ВЫПОЛНИТЬ script и доставить его вывод вместо того, чтобы просто обслуживать исходный код (ваш текущий случай, который приводит к предупреждению).
Ответ 2
У меня была такая же ошибка при попытке включить PHP файл в мою тему Wordpress. Мне удалось обойти это, указав имя файла, используя dirname(__FILE__)
. Я не мог использовать относительные пути, так как мой файл будет включен в разные места по всей теме, поэтому что-то вроде require_once '../path-to/my-file'
не будет работать.
Замена require_once get_template_directory_uri() . '/path-to/my-file'
на require_once dirname( __FILE__ ) . '/path-to/my-file'
сделала трюк.
Ответ 3
попробуйте использовать
<?php require_once($_SERVER['DOCUMENT_ROOT'].'/web/a.php'); ?>
Ответ 4
Вы должны указать путь к файлу. Например:
require_once('../web/a.php');
Вы не можете заставить файл запрашивать его из Интернета (с протоколом http), который он запретил. Файлы должны находиться на одном сервере. С возможностью видеть друг друга (права)
Dir-1 -
> Folder-1 -> a.php
Dir-2 -
> Folder-2 -> b.php
To include a.php inside b.php => require_once('../../Dir-1/Folder-1/a.php');
To include b.php inside a.php => require_once('../../Dir-2/Folder-2/b.php');