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