PHPで作成したファイルを消すPHP

PHPでファイルを生成するとアレですよ。所有者がApacheになってしまって、FTPでは削除出来なかったりするわけですよ。特にテスト環境とかね……。
google:php+apache+権限+削除
とかで調べても、無いので作ってみた。
なので、一気に消すという超弩級に危険なプログラムをぽこんとおいとく。
これに、ユーザ変更とか入れておくとApache所有者以外のデータも消せちゃうかも知れない。

<?php
/* ===============================================
    バルスプログラム(bals.php)
    このプログラムと同じ階層の所有者がApacheになってるディレクトリ及びファイルを
    全て削除する危険なプログラム。かも知れない。
================================================= */
  echo "現在地:<b>".getcwd()."</b><br>";
// ファイルリストの取得
  $filelist = glob("*");
  $filecount = count($filelist);

  for($i=0 ; $i<$filecount ; $i++ ){
    if($filelist[$i]=="bals.php"){
      echo "自己ファイルなので処理無し \n";
    }else{
      // ファイルだった場合は素直に削除
      if(filetype($filelist[$i])=="file"){
        echo "$filelist[$i]  <b>flie</b>";
        if(unlink($filelist[$i])){
          echo "DEL成功<br>";
        }else{
          echo "Error<br>";
        }
      }else{
        // ディレクトリだった場合は移動する
        echo "<blockpuote><b>$filelist[$i]</b> dir";
        chdir($filelist[$i]);
        dirfiledel();
        chdir("..");
        rmdir($filelist[$i]);
        echo "</blockquote>";
      }
    }
  }

function dirfiledel(){
  $filelist = glob("*");
  $filecount = count($filelist);

  for($i=0 ; $i<$filecount ; $i++ ){
    if($filelist[$i]=="bals.php"){
      echo "自己ファイルなので処理無し \n";
    }else{
      // ファイルだった場合は素直に削除
      if(filetype($filelist[$i])=="file"){
        echo "$filelist[$i]  <b>flie</b>";
        if(unlink($filelist[$i])){
          echo "DEL成功<br>";
        }else{
          echo "Error<br>";
        }
      }else{
        // ディレクトリだった場合は移動する
        echo "<blockpuote><b>$filelist[$i]</b> dir";
        chdir($filelist[$i]);
        dirfiledel();
        chdir("..");
        rmdir($filelist[$i]);
        echo "</blockquote>";
      }
    }
  }
}
?>
  • 使い方
    • メモ帳にコピペ
    • ファイル名を「bals.php」として保存
    • 消したいフォルダのあるところにFTPでアップロード
    • ブラウザでアドレスを記入
    • 所有者がApache以外の場合は多分エラー吐くと思う。(未確認)
    • FTPでこのファイル消す。

ソースが汚いのは仕様というか、動けばイイやってんでエイヤー!っと創ったから。
あと、無駄な手順も多すぎ。。。
見栄えを良くするためのBlockpuoteはむしろ、DIVとSTYLEで設定した方がいいかも……。
自己ファイルかどうか見極めるだけなら「$_SERVER[PHP_SELF]」にしとけって、思ったけどイイや。だって、「バルス」だもん!
多階層処理するから二重になってるのをどうにかしたいね……。建て増し法で書くのはいけないと反省。