为什么require_once不起作用

时间:2014-05-02 09:45:16

标签: php include-path

我正在开发一个用PHP编写的社区。我刚刚开始聊天,所以我在根目录中创建了一个名为“chat”的新文件夹。在那个聊天文件夹中,我创建了一个“index.php”文件。在那个index.php文件中,我想

require_once '../core/init.php';

require_once功能有效,但在我的init.php文件中

require_once 'functions/sanitize.php'.

这会产生错误

  

警告:require_once(functions / sanitize.php)[function.require-once]:无法打开流:第26行的C:\ wamp \ www \ ooplr \ core \ init.php中没有此类文件或目录< / p>

第26行

require_once 'functions/sanitize.php'.

有什么想法吗?

http://i.imgur.com/GekEOYT.png

此致

古斯塔夫

5 个答案:

答案 0 :(得分:0)

确保文件存在且位于正确的目录中。据我所知,require(和include)将包含从“request”目录开始的文件。因此,如果您调用init.php,require将搜索core / functions / sanitize.php。

答案 1 :(得分:0)

将您的文件夹结构图像functions/sanitize.php文件Asp放在核心文件夹中。所以使用此代码。

require_once '../functions/sanitize.php';

答案 2 :(得分:0)

您有core/init.phpfunctions/sanitize.php因此需要使用路径返回到一个目录并包含该文件。

require_once '../functions/sanitize.php';

答案 3 :(得分:0)

sanitize.php位于function目录中,function directory不在core文件夹中
现在改变

require_once 'functions/sanitize.php';

require_once '../functions/sanitize.php';

答案 4 :(得分:0)

在这样的项目中,最好的办法是定义一个指向当前工作目录的常量,然后在整个应用程序中使用它。

例如,请考虑以下事项:

<强>聊天/ index.php的

<?php

// Constants
define('CWD', getcwd()); // points to C:/wamp/www/ooplr/chat

// Load Init Script
require CWD .'/../core/init.php'; // points to C:/wamp/www/ooplr/core/init.php

// Rest of code ...

?>

<强>芯/的init.php

<?php

// Load Sanitizer
require CWD .'/../functions/sanitize.php' // points to C:/wamp/www/ooplr/functions/sanitize.php

// Rest of the code

?>

等...


...替代地

<强>聊天/ index.php的

<?php

// Constants
define('BaseDir', getcwd() .'/../'); // points to C:/wamp/www/ooplr/

// Load Init Script
require BaseDir .'core/init.php'; // points to C:/wamp/www/ooplr/core/init.php

// Rest of code ...

?>

<强>芯/的init.php

<?php

// Load Sanitizer
require BaseDir .'functions/sanitize.php' // points to C:/wamp/www/ooplr/functions/sanitize.php

// Rest of the code

?>