相对路径和'fopen'

时间:2012-11-11 13:54:18

标签: php

我正在编写一个简单的输出缓冲缓存引擎。

以下是让我遇到麻烦的代码摘录:

//...

function cache_page($content) {
    $handle = fopen('./folder/cache_file','w');
    //...
}

//...

ob_start('cache_page');

奇怪的是,当我使用像'./folder/cache_file'这样的相对路径时,fopen失败,返回false。当使用像'C:/ foilder / cache_file'这样的完整路径或只使用文件名'cache_file'时,一切都很好。

此问题似乎与ob_start处理函数调用(本例中为cache_page)有关。当然,当我将$handle = fopen('./folder/cache_file','w')放在其他地方时,例如,在ob_start之后,fopen会以上面的相对路径成功。

2 个答案:

答案 0 :(得分:0)

取决于“应用程序路径”。在哪个文件夹中执行脚本,ROOT_PATH的值是什么?

您是否尝试过fopen('folder/cache_file','w');

答案 1 :(得分:0)

当您使用C:/folder/cache_filecache_file时,它会有效吗?这意味着您正在C:/folder/中执行脚本。在./folder/cache_file中使用相对路径C:/folder/表示完整路径为C:/folder/folder/cache_file

相对表示相对于当前工作目录