【问题标题】:file create error in phpphp中的文件创建错误
【发布时间】:2012-08-07 06:19:00
【问题描述】:

我正在使用 php 函数创建文件,但它不起作用。我已经创建了文件夹并设置了它的权限 0777,但它没有创建文件。

我正在使用以下代码。请让我知道出了什么问题。

   $cachefile ='/cache/cache.text';
   $file=chmod($cachefile, 777);
   if (file_exists($file)) {
    include($file); 
    } else{
   $fp = fopen('/cache/cache.txt', 'w');    
   fwrite($fp, ob_get_contents());
   fclose($fp);
    ob_end_flush();

对于 ob_get_contents() 函数,我正在使用 ob_start () 函数。如果我手动创建文件,它正在工作并显示缓冲数据。请告诉我如何使用 fopen 函数创建文件。

【问题讨论】:

  • 看起来您将权限设置为.text 而不是.txt,因此它们不是同一个文件。让我们知道错误是什么。
  • $fp = fopen('/cache/cache.txt', 'w'); 替换为$fp=fopen('/cache/cache.txt', 'w')or die("can't open file"); 以帮助隔离问题。

标签: php file file-permissions


【解决方案1】:

这行有几个问题:

$file=chmod($cachefile, 777);
  1. 那个时候文件可能不存在,所以可能会报错(不能对不存在的文件做chmod)。

  2. chmod() 将返回 truefalse。您稍后会尝试在代码中使用此返回值,并保存在 $file 变量中。

如果cache 文件夹是可写的,这应该可以工作:

   $cachefile ='cache/cache.txt';
   if (file_exists($cachefile)) {
       include($cachefile); 
   } 
   else {
       $fp = fopen($cachefile, 'w');    
       fwrite($fp, ob_get_contents());
       fclose($fp);
       ob_end_flush();
   }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    相关资源
    最近更新 更多