ファイルを削除する/フォルダを削除する
ファイルを削除する
<?php
/* ================================
* fileDelete
*
* @create 2009/06/09
* @author pentan
* @url http://pentan.info/
*
* Copyright (c) 2009 pentan.info All Rights Reserved.
* 著作権表示部分の変更削除は禁止です
* ================================
*/
function fileDelete($target){
// ファイルが存在する場合
if (file_exists($target)) {
if (is_dir($target)) {
echo "指定されたファイルはフォルダです。";
exit;
}
if (!is_writable($target)) {
echo "ファイルの書き込み権限がありません。";
exit;
}
// シンボリックリンクであれば元のファイルを削除する
if (is_link($target)) {
fileDelete(realpath($target));
}
if (!@unlink($target)) {
echo "ファイルの削除に失敗しました。";
exit;
}
}
return true;
}
// 対象のファイル
$target="test.txt";
fileDelete($target);
?>
フォルダを削除する
<?php
/* ================================
* dirCanDelete
* dirDelete
*
* @create 2009/06/09
* @author pentan
* @url http://pentan.info/
* ================================
*/
// ディレクトリが削除可能かどうか調べる
function dirCanDelete($target){
$target = preg_replace("/".preg_quote(DIRECTORY_SEPARATOR,"/")."$/","",$target);
// ファイルのステータスのキャッシュをクリアする
clearstatcache();
// ファイルが存在する場合
if (file_exists($target)) {
if (!is_writable($target)) {
echo "フォルダの書き込み権限がありません。";
exit;
}
// ディレクトリハンドルを開く
if (!($dh = @opendir($target_dir))) {
echo "フォルダ情報の取得に失敗しました。";
exit;
}
// ディレクトリ内のファイル名を1つづつ取得
while ($file = readdir($dh)) {
if ($file == "." || $file == "..") continue;
$t = $target . DIRECTORY_SEPARATOR . $file;
if(is_dir($t)){
// 下階層のディレクトリをチェックする
dirCanDelete($t);
}else{
if (!is_writable($target)) {
echo "ファイルの書き込み権限がありません。";
exit;
}
}
}
// ディレクトリハンドルを閉じる
closedir($dh);
}
return true;
}
// ディレクトリを削除する
function dirDelete($target){
$target = preg_replace("/".preg_quote(DIRECTORY_SEPARATOR,"$/")."/","",$target);
// ファイルのステータスのキャッシュをクリアする
clearstatcache();
// ファイルが存在する場合
if (file_exists($target)) {
// ディレクトリハンドルを開く
if (!($dh = @opendir($target))) {
echo "フォルダ情報の取得に失敗しました。";
exit;
}
// ディレクトリ内のファイル名を1つづつ取得
while ($file = readdir($dh)) {
if ($file == "." || $file == "..") continue;
$t = $target . DIRECTORY_SEPARATOR . $file;
if(is_dir($t)){
// 下階層のディレクトリを削除する
dirDelete($t);
}else{
if (!@unlink($target)) {
echo "ファイルの削除に失敗しました。";
exit;
}
}
}
// ディレクトリハンドルを閉じる
closedir($dh);
if (is_dir($target)) {
if (!@rmdir($target)) {
echo "フォルダの削除に失敗しました。";
exit;
}
}else{
if (!@unlink($target)) {
echo "フォルダの削除に失敗しました。";
exit;
}
}
}
return true;
}
// 対象のファイル
$target="/home/hoge/test";
// シンボリックリンクであれば元のファイルを削除する
if (is_link($target)) {
dirCanDelete($target);
dirDelete(realpath($target));
}
dirCanDelete($target);
dirDelete($target);
?>
関連記事
- PHPでwebサーバー(apache/nginx)の実行ユーザー・グループを確認する方法
- リクエストヘッダーやリクエストボディーなどを取得する方法
- 負荷が高いときには503エラーを返す方法
- サイトの更新情報をPINGサーバに送信する方法
- PHPでロードアベレージを表示させる方法
- PHPでTwitterのツイートをする/ツイート一覧を取得する/検索する(API v1.1)
- インクルードパスを設定する方法
- オブジェクト(Object)を配列(Array)に変換する方法
- PHPでgzip圧縮形式(gz圧縮)のファイルを読み書きする方法
- PHPでfacebook投稿時に公開範囲を指定する方法
- PHPで複数の画像をfacebookに投稿する方法
- PHPでfacebookのフィード(ウォール)に投稿する方法
- PHPでのfacebookアプリの認証処理(APIを使うユーザー認証)
- MySQL関数のまとめ
- MySQLサーバに接続できるかどうかを確認する
- ディレクトリ内のファイルのパーミッションを一括で変更する
- POSTでアップロードできるファイルサイズの制限を変更する方法
- 暗号化・複合化を行う ブロック暗号
- date型やdatetime型と年月日時分秒への変換
- 関数・メソッドの存在を調べる方法
- PHPでTwitterのbotを作る方法 ツイートをする/ツイート一覧を取得する(API v1)
- strtotimeの指定
- PHPでHTMLメールを送る方法
- ディレクトリセパレータを短く定義する DIRECTORY_SEPARATOR
- モザイク画像を作る方法
- HTML内のアクセス解析タグを除去する方法
- HTMLのTABLEタグを簡単にCSVファイルに変換する方法
- 画像表示のときに指定サイズにリサイズする(画像の拡大縮小)
- テキストを可逆的な暗号化する Crypt_Blowfish
- PHPでwhois検索をする Net_Whois
- よく使うヘッダー関数のまとめ
- キャリア・世代を判別する
- mb_send_mailでCCやBCCを指定する 表示名を指定する
- より高速に、推測困難な一意なIDを生成する方法
- 画像ファイルを指定容量ぎりぎりに圧縮する
- 指定したHTTPヘッダーが送信済みあるいは送信予定に含まれているか
- DOCUMENT ROOTを得る $_SERVER["DOCUMENT_ROOT"]は使えない!
- マルチバイト文字列(日本語文字)を一文字づつ取り出す
- ファイルを読み込む/ファイルに書き込む
- ディレクトリ内のファイル一覧を取得する
- quoted-printable文字列の変換
スポンサーリンク





