我正在编写一个简单的输出缓冲缓存引擎。
以下是让我遇到麻烦的代码摘录:
//...
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
会以上面的相对路径成功。
答案 0 :(得分:0)
取决于“应用程序路径”。在哪个文件夹中执行脚本,ROOT_PATH
的值是什么?
您是否尝试过fopen('folder/cache_file','w');
?
答案 1 :(得分:0)
当您使用C:/folder/cache_file
或cache_file
时,它会有效吗?这意味着您正在C:/folder/
中执行脚本。在./folder/cache_file
中使用相对路径C:/folder/
表示完整路径为C:/folder/folder/cache_file
。
相对表示相对于当前工作目录。