ホームページ >php教程 >php手册 >ファイルの空のディレクトリに読み取りおよび書き込み権限があるかどうかを判断するための PHP の関数コード

ファイルの空のディレクトリに読み取りおよび書き込み権限があるかどうかを判断するための PHP の関数コード

WBOY
WBOYオリジナル
2016-06-13 11:58:59921ブラウズ

is_writable はこれを処理するために使用されます。PHP は、Web サーバーを実行しているユーザー名 (通常は「nobody」) としてのみファイルにアクセスできる可能性があることに注意してください。セーフ モードの制限にはカウントされません。
例 #1 is_writable() 例

コードをコピー コードは次のとおりです:


$ filename = 'test.txt';
if (is_writable($filename)) {
echo 'ファイルは書き込み可能です';
} else {
echo 'ファイルは書き込み可能ではありません';
}
?>


上記の関数の問題の 1 つは、ファイル名が必要であることです。チェックするファイルはファイルであると規定されており、ディレクトリは判定できません。 次に空のディレクトリを判定します。
例 1
この関数は、特に静的ファイルを生成する必要がある一部のプロジェクトで非常に一般的に使用され、ディレクトリが使用できるかどうかは、そのディレクトリにファイルの作成と削除の権限があるかどうかによって決まります。 >

コードをコピーします コードは次のとおりです:

/*

問題が発生します: ディレクトリが書き込み可能かどうかを確認する方法と、その方法ディレクトリ内にディレクトリとファイルがある場合は、すべてをチェックする必要があります。
アイデア:
(1) まず、空のディレクトリが書き込み可能かどうかを確認するアルゴリズムを書き出します。
ディレクトリ内にファイルを生成します。生成できません。ディレクトリに書き込み権限がないことを意味します
(2) 再帰的メソッドを使用してチェックします
コード実装:
*/
set_time_limit(1000); function check_dir_iswritable ($dir_path){
$dir_path=str_replace(' ','/',$dir_path);
$is_writale=1;
if(!is_dir($dir_path)){
$is_writale =0;
return $is_writale;
} else{
$file_hd=@fopen($dir_path.'/test.txt','w');
@fclose($file_hd);
@ unlink($dir_path.'/test.txt');
return $is_writale; dir_hd=opendir($dir_path);
while(false !==($file=readdir($dir_hd))){
if ($file != "." && $file != ".." ) {
if(is_file($dir_path.'/ '.$file)){
//ファイルは書き込み可能ではないため、直接返します
if(!is_writable($dir_path.'/'.$ file)){
return 0;
}
}else{
$file_hd2=@fopen($dir_path.'/'.$file.'/test.txt','w') ;
if(!$file_hd2){
@fclose ($file_hd2)
@unlink($dir_path.'/'.$file.'/test.txt'); =0;
return $is_writale;
}
//再帰
$is_writale=check_dir_iswritable($dir_path.'/'.$file)
}
}
}
return $is_writale;
}


上記の例では、主に fopen を使用してディレクトリにファイルを作成するか、ファイルにコンテンツを書き込みます。ディレクトリの権限を決定できます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。