is_writable はこれを処理するために使用されます。PHP は、Web サーバーを実行しているユーザー名 (通常は「nobody」) としてのみファイルにアクセスできる可能性があることに注意してください。セーフ モードの制限にはカウントされません。
例 #1 is_writable() 例
コードをコピー コードは次のとおりです。 echo 'ファイルは書き込み可能です';
} else {
echo 'ファイルは書き込み可能ではありません';
?>
上記の関数の問題は、ファイル名が必要であることです。チェックするファイルはファイルであると規定されており、ディレクトリは判定できません。 次に空のディレクトリを判定します。
例 1
この関数は、特に静的ファイルを生成する必要がある一部のプロジェクトで非常によく使用されます。ディレクトリを使用できるかどうかは、そのディレクトリにファイルの作成と削除の権限があるかどうかによって決まります
コードをコピーします
コードは次のとおりです:
/* 問題が発生します: ディレクトリが書き込み可能かどうかを確認する方法、およびディレクトリ内にディレクトリとファイルがあるかどうかを確認する方法 アイデア: (1) まずアルゴリズムを書き出します。空のディレクトリが書き込み可能かどうかを確認するには: ディレクトリにファイルを生成します。生成できない場合は、そのディレクトリに書き込み権限がないことを意味します。 (2) 再帰的メソッドを使用して確認します。 set_time_limit(1000);
関数 check_dir_iswritable($dir_path) {
$dir_path=str_replace('','/',$dir_path);
if(!is_dir($dir_path)){
$is_writale =0;
return $is_writale;
}else{
$file_hd=@fopen($dir_path.'/test.txt','w');
if(!$file_hd){
@fclose($file_hd);
@unlink($dir_path.'/test.txt ');
$is_writale=0;
$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') ;
$is_writale=0;
return $is_writale;
//再帰的
$is_writale=check_dir_iswritable($dir_path.'/'.$file);
}
上記の例では、主に fopen を使用してディレクトリにファイルを作成するか、ファイルにコンテンツを書き込み、ディレクトリの読み取りおよび書き込み権限を決定できるようにします。
http://www.bkjia.com/PHPjc/325768.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/325768.html
技術記事
is_writable はこれを処理するために使用されます。PHP は、Web サーバーを実行しているユーザー名 (通常は「nobody」) としてのみファイルにアクセスできる可能性があることに注意してください。セーフ モードの制限にはカウントされません。例 #1 is_writable...