我试图通过
在页面中包含一个php文件 require_once(http://localhost/web/a.php)
我收到错误
Warning: require_once(): http:// wrapper is disabled in the server configuration by allow_url_include=0
我在php.ini中更改了allow_url_include=1
,但是我认为并不是每个人都会让我更改他们的php.ini文件。
那么,有没有办法实现这个目标?
答案 0 :(得分:55)
生成警告是因为您使用的是所包含文件的完整URL。这不是正确的方法,因为这样您将从Web服务器获取一些HTML。使用:
require_once('../web/a.php');
这样网络服务器就可以执行脚本并提供输出,而不仅仅是提供源代码(当前案例导致警告)。
答案 1 :(得分:15)
尝试在我的Wordpress主题中包含PHP文件时遇到了同样的错误。通过使用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'
就可以了。
答案 2 :(得分:11)
尝试使用
<?php require_once($_SERVER['DOCUMENT_ROOT'].'/web/a.php'); ?>
答案 3 :(得分:6)
您必须将路径放到文件中。例如:
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');
答案 4 :(得分:2)
require_once('../web/a.php');
如果这对任何人都不起作用,那么在项目的任何地方都可以包含以下文件。
require_once dirname(__FILE__)."/../../includes/enter.php";
此代码将从当前目录之外的2个目录中获取文件。
答案 5 :(得分:0)
答案 6 :(得分:0)
WORDPRESS主要出现此错误:
解决方案:
在远程实时托管SERVER或“本地服务器”上找到您的PHP安装目录
如果是Windows操作系统
例如,如果您使用xampp或wamp网络服务器。它将在xammp目录中
'c:\ xammp \ php'
注意: 对于Unix / Linux操作系统,在Web服务器中找到您的PHP目录
查找并编辑 PHP.INI 文件
查找'allow_url_include'
将其替换为“ on”值
allow_url_include =打开
为您保存 php.ini 和重新启动您的网络服务器。
答案 7 :(得分:0)
echo file_get_contents('http://localhost/web/a.php'); //最佳示例
答案 8 :(得分:0)
include和require函数需要文件路径,但是您提供的是文件URI 。该参数不应为包含http / https的参数。
您的代码应类似于:
include ("folder/file.php");