在 require_once 中使用常量

7

我在开发中使用以下内容来定义根目录:

define('LOCAL_URL', 'http://localhost/~xampp/Mysite');
define('REMOTE_URL', 'http://example.com');
define('DEV_VERSION', true);
if(DEV_VERSION)
    define('URL', LOCAL_URL);
else
    define('URL', REMOTE_URL);

对于我来说,这个概念是新的,而且我有点 PHP 的初学者,所以请温柔一点。

我试图在 'require_once' 中使用 'URL',但似乎无法使其工作(即所需文件未包含)。 我尝试了以下方法:

require_once URL.'/phpincludes/coming-events.php';
require_once(URL.'/phpincludes/coming-events.php');
require_once URL . '/phpincludes/coming-events.php';
require_once (URL . '/phpincludes/coming-events.php');
require_once(URL.'phpincludes/coming-events.php');

我已经查看了 http://www.php.net/manual/zh/function.require-once.php,并在 Stackoverflow 进行了搜索,但仍然没有取得任何进展。
我确定我可能犯了一个非常愚蠢和基础的错误,但我现在不知所措,真的需要帮助!

看起来你在上一个问题中得到了错误的建议。只使用不同的基础URL来输出HTML引用。 (关于样式表问题,只需在<base href = ...>中使用它进行补偿即可)。 - mario
谢谢马里奥。所以我甚至不能在图像路径中使用它吗?例如:<img src="<?php echo URL ?>/images/something.jpg"> - circey
一个单一的基础 href 可以让图片和样式表正常工作。但是只有在你使用相对路径时才有效。否则你需要在每个 URL 前面添加前缀。 - mario
1个回答

4
问题可能是因为URL有一个协议,并且试图通过HTTP打开文件。
在PHP中,默认禁用远程包含文件(allow_url_include),这是有充分理由的。
您应该传递相对或绝对路径以包含文件系统中的文件。

1
谢谢Alex。我正在使用define,以便可以使用相对路径,所以现在我真的很困惑。昨天我发布了这个问题,结果导致我使用define。我不完全理解你的意思,但我会尝试其他方法,也许? - circey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接