PHPではunlink関数でファイルを削除しますが、そのファイルに削除権限があるかどうかを判断することができます。unlink関数の使い方と権限の判断について簡単に紹介します。
リンクを解除($file)
例1
コードは次のとおりです | コードをコピー |
リンクを解除($somefile) |
場合によっては、ファイルに対する書き込み権限があるにもかかわらず、削除できない場合があります。
理由は非常に簡単です。ファイルの削除はファイルの変更ではなく、ファイルが存在するディレクトリへの書き込み権限が必要です。
is_readable() 関数はファイルに読み取り権限があるかどうかを判断するために使用され、is_writable() 関数はファイルに書き込み権限があるかどうかを判断するために使用されます。 is_readable() 関数は、指定されたファイルが読み取り可能かどうかを判断します。 構文は次のとおりです。 bool is_readable(文字列ファイル名)
ファイルが存在し、読み取り可能な場合は TRUE を返します。
is_writable() 関数は、指定されたファイルが書き込み可能かどうかを判断します。 構文は次のとおりです。
bool is_writable(文字列ファイル名)
ファイルが存在し、書き込み可能な場合は TRUE を返します。パラメータ filename には、書き込み可能チェックを可能にするディレクトリ名を指定できます。
注: PHP は、Web サーバーが実行されているユーザー名 (通常は「nobody」) でのみファイルにアクセスできる場合があります。セーフ モードの制限にはカウントされません。ファイルのアクセス権を判断することは、特にファイルの読み取り、書き込み、名前変更などの操作を実行する場合の前提条件です。ファイルに読み取りおよび書き込みのアクセス権がなければ、これらの操作は意味がありません。
デザインプロセス
(1)index.phpファイルを作成します。
(2)フォームを追加し、テキストボックスを設定し、指定したファイルを送信し、ファイルドメインを設定し、ファイルに記述したデータを送信し、送信ボタンを設定し、POSTメソッドを使用してこのページにデータを送信します。
(3) $_POST[] メソッドを通じてフォームから送信されたファイル パスとファイルの内容を取得し、iconv() 関数を通じて取得したデータをエンコードします。まず、指定されたファイルが存在するかどうかを確認します。次に、指定されたファイルに書き込み権限があるかどうかを判断し、書き込み権限がある場合は、フォームによって送信されたファイルの内容をファイルに書き込みます。最後に、開いているファイルを閉じて、プロンプト メッセージを表示します。 Index.php のキーコードは次のとおりです:
コードは次のとおりです | コードをコピー |
If($_POST['file_name']!=""&& is_file(iconv("utf-8","gb2312",$_POST['file_name']))==true){ //ファイルが存在するかどうかを判断します $ File_name = iconv ("UTF-8", "GB2312", $ _ Post ['file_name']); If(file_exists($file_name)){ If (IS_WRITABLE ($ File_name)) {// ファイルに書き込み権限があるかどうかを判断します $ fp = fopen($ file_name、 "w+"); $ fpen($ file_name、 "w+"); If (fwrite ($ fp, $ file_content)) {// 書き込まれた操作を実行します echo"<script>alert('ファイルは正常に書き込まれました!');</script>"; } else { echo"<script>alert('ファイルの書き込みに失敗しました!');</script>"; } fclose($fp); } Else if (is_readable ($ file_name)) {// ファイルに読み取り権限があるかどうかを判断します echo"<script>alert('ファイルには読み取り権限しかありません!');</script>"; }他の{ echo"<script>alert('ファイルには読み取りまたは書き込み権限がありません!');</script>"; } }他の{ echo"<script>alert('ファイルが存在しません!');</script>"; } }その他{ echo"<script>alert('正しいファイル パスを入力してください!');</script>"; } ?> |