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