我正在尝试为我的应用程序建立一个结构,以在各个页面和子目录中正确包含脚本
我遇到的问题;
在我的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';
在我的functions.php中,我拥有
$hello = 'hi';
当我在索引页面中调用echo $hello;
时,它会通知我; Notice: Undefined variable: hello in
如果在函数页面中回显$ hello,则消息会出现在索引页面中。
尝试修复后,我注意到,如果我将functions.php移到同一目录并在索引页面中使用include ('function.php');
和echo $hello
,则它可以正常工作。因此,我想我是错误地使用了这个BASE_URL。
总而言之,我想做的是能够包含文件而无需每次手动输入路径,在阅读了几篇文章之后,我开始使用DEFINE();使用此选项。目前,我所有的工作都在文件夹cformv2中,并且在localhost上工作。完成后,它将被上传到我的虚拟主机。我在此基本目录(cformv2)下的多个文件夹中有多个文件。
如何定义此文件夹的路径,以便可以包含其他文件夹中的其他文件?另外,我可以包含文件而又不能在其中调用变量或函数是怎么回事?
先谢谢了。
答案 0 :(得分:0)
您无法通过URL打开http://localhost/cformv2/inc/functions.php
您可以将BASE_DIR用作
define ('BASE_URL', '/cformv2/');
Include旨在包含和评估指定的PHP文件。如果在本地获取它,则可以像PHP一样对其进行处理-如果通过完整的URL获取它,则将得到结果HTML(从理论上讲,您可能只会得到一个错误)。 Full URL not working with php include
答案 1 :(得分:0)
如果您要包括PHP文件,则不应使用URL。服务器上必须有文件的完整路径,例如:
define ('BASE_DIR', __DIR__);
include BASE_DIR . '/inc/functions.php';