0

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

以下是让我陷入困境的代码摘录:

//...

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_startfopen使用上面的相对路径成功。

4

2 回答 2

1

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

你试过fopen('folder/cache_file','w');吗?

于 2012-11-11T14:01:17.467 回答
0

所以当你使用C:/folder/cache_fileor时它会起作用cache_file?这意味着您正在执行脚本C:/folder/./folder/cache_file在 in 时使用相对路径C:/folder/意味着完整路径是C:/folder/folder/cache_file.

相对意味着相对于当前工作目录

于 2012-11-11T14:03:13.297 回答