PHP_PHP チュートリアルで空のファイル ディレクトリに読み取りおよび書き込み権限があるかどうかを確認する

WBOY
リリース: 2016-07-13 17:00:02
オリジナル
810 人が閲覧しました

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 を使用してディレクトリにファイルを作成するか、ファイルにコンテンツを書き込みます。これにより、ディレクトリの読み取りおよび書き込み権限を決定できます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631280.html技術記事 is_writable はこれを処理するために使用されます。PHP は、Web サーバーを実行しているユーザー名 (通常は「nobody」) としてのみファイルにアクセスできる可能性があることに注意してください。セーフ モードの制限にはカウントされません。例 #1 is_writable...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート