我正在尝试为我的应用程序设置一个结构,以便在不同的页面和子目录中正确地包含脚本
我遇到的问题;
在我的index.php中,我有
define ('BASE_URL', 'http://localhost/cformv2/');
include BASE_URL . 'inc/functions.php';
require BASE_URL . 'inc/db.php';
include BASE_URL . 'inc/auth.php';
在我的函数中。php我有
$hello = 'hi';
当我在索引页面中调用echo $hello;
时,它会给我一个通知:;Notice: Undefined variable: hello in
如果我在函数页面中回显$hello,则消息将显示在索引页面中。
在尝试修复后,我注意到,如果我将functions.php移到同一目录,并在索引页中使用include ('function.php');
和echo $hello
,它就可以工作了。所以我认为,我使用这个BASE_URL是错误的。
总之,我要做的是能够包含文件,而无需每次手动输入路径,在阅读了几篇文章后,我开始使用DEFINE((;使用此选项;。目前,我所有的工作都在文件夹cformv2中,并在localhost上工作。一旦它完成,它将被上传到我的网络主机。我在这个基本目录(cformv2(下的多个文件夹中有多个文件。
如何定义此文件夹的路径,以便包含其他文件夹中的其他文件?此外,我是如何包含文件而不能调用其中的变量或函数的?
提前谢谢。
您无法打开http://localhost/cformv2/inc/functions.php通过URL
您可以使用BASE_DIR作为
define ('BASE_URL', '/cformv2/');
Include是指包含和评估指定的PHP文件。如果你在本地获取它,它可以像PHP一样处理——如果你通过一个完整的URL获取它,你会得到结果HTML(理论上……你可能只得到一个错误(。不适用于php的完整URL包括
如果您想包含PHP文件,您不应该使用URL。服务器上必须有文件的完整路径,例如:
define ('BASE_DIR', __DIR__);
include BASE_DIR . '/inc/functions.php';