为什么`include_once`成功服务于html而``readfile`在php中失败?

时间:2016-04-04 03:14:26

标签: php html

我有以下功能

public function my_index()
{

    try {
        define("PATH_ROOT", dirname(__FILE__));
        var_dump(PATH_ROOT);
        include_once PATH_ROOT . "/test.php";
        //readfile('./test.php');
    } catch (Exception $e) {
        var_dump($e->getMessage());
    }

    die;

}

我的test.php内有

<div>This is test</div>

我验证test.php与托管my_index

的文件位于同一目录中

但每当我尝试

readfile('./test.php);

它总是返回

readfile(./test.php): failed to open stream: No such file or directory

当我发表评论readfile时,它实际上能够提供test.php的内容

有人可以解释为什么include_once正在提供HTML吗?这是在php中提供html服务的惯用方式吗?

1 个答案:

答案 0 :(得分:0)

您为include_once提供了绝对路径。

 include_once PATH_ROOT . "/test.php";

为另一个尝试相同。

readfile(PATH_ROOT . "/test.php");

注意: 您可以使用getcwd()

检查当前的工作目录