Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中的文件创建错误_Php_File_File Permissions - Fatal编程技术网

php中的文件创建错误

php中的文件创建错误,php,file,file-permissions,Php,File,File Permissions,我正在使用php函数创建文件,但它不工作。我已经创建了文件夹并设置了其权限0777,但它没有创建文件 我正在使用以下代码。请告诉我出了什么问题 $cachefile ='/cache/cache.text'; $file=chmod($cachefile, 777); if (file_exists($file)) { include($file); } else{ $fp = fopen('/cache/cache.txt', 'w');

我正在使用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功能创建文件。

此行有几个问题:

$file=chmod($cachefile, 777);
  • 此时,该文件可能不存在,因此可能会显示错误(无法对不存在的文件执行chmod)

  • 将返回
    true
    false
    。您稍后试图在代码中使用此返回值,该值保存在
    $file
    变量中

  • 如果
    缓存
    文件夹是可写的,则此操作应有效:

       $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();
       }
    

    这一行有几个问题:

    $file=chmod($cachefile, 777);
    
  • 此时,该文件可能不存在,因此可能会显示错误(无法对不存在的文件执行chmod)

  • 将返回
    true
    false
    。您稍后试图在代码中使用此返回值,该值保存在
    $file
    变量中

  • 如果
    缓存
    文件夹是可写的,则此操作应有效:

       $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();
       }
    

    看起来您正在将权限设置为
    .text
    而不是
    .txt
    ,因此它们不是同一个文件。让我们知道错误是什么。替换
    $fp=fopen('/cache/cache.txt',w')$fp=fopen('/cache/cache.txt',w')或die(“无法打开文件”)
    帮助隔离问题。看起来您正在将权限设置为
    .text
    而不是
    .txt
    ,因此它们不是同一个文件。让我们知道错误是什么。替换
    $fp=fopen('/cache/cache.txt',w')$fp=fopen('/cache/cache.txt',w')或die(“无法打开文件”)以帮助隔离问题。