1

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 関数を使用してファイルを作成する方法を教えてください。

4

1 に答える 1

1

この行にはいくつかの問題があります。

$file=chmod($cachefile, 777);
  1. その際、ファイルが存在しない可能性があるため、エラーが表示される場合があります(存在しないファイルに対してchmodを実行することはできません)。

  2. chmod()trueまたはのいずれかを返しますfalse$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();
   }
于 2012-08-09T23:23:38.730 に答える