Я пытаюсь включить 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.
Итак, есть ли способ сделать это?
Предупреждение генерируется, потому что вы используете полный URL-адрес для файла, который вы включаете. Это НЕ правильный путь, потому что таким образом вы получите HTML-код с веб-сервера. Использование:
require_once('../web/a.php');
так что веб-сервер мог бы ИСПОЛНИТЬ сценарий и доставлять его вывод вместо того, чтобы просто обслуживать исходный код (ваш текущий случай, который приводит к предупреждению).
У меня была такая же ошибка, пытаясь включить PHP-файл в мою тему WordPress. Мне удалось обойти его, dirname(__FILE__)
имя файла, используя dirname(__FILE__)
. Я не мог использовать относительные пути, так как мой файл будет включен в разные места по всей теме, поэтому что-то вроде require_once '../path-to/my-file'
не будет работать.
Замена require_once get_template_directory_uri() . '/path-to/my-file'
require_once get_template_directory_uri() . '/path-to/my-file'
с require_once dirname( __FILE__ ) . '/path-to/my-file'
require_once dirname( __FILE__ ) . '/path-to/my-file'
сделал трюк.
попробуй использовать
<?php require_once($_SERVER['DOCUMENT_ROOT'].'/web/a.php'); ?>
Вы должны указать путь к файлу. Например:
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');