1. はじめに
Web プログラミングでは、ファイル操作は常に頭の痛い問題ですが、CMS システムではファイル ディレクトリの生成などの操作が非常に便利です。ここでは、PHP のこれらの関数の詳細な概要を作成し、その使用方法を例を示して説明します。対応する関数の詳細については、PHP マニュアルを参照してください。重要な点と注意が必要な点 (PHP マニュアルには記載されていません)
2. ディレクトリ操作
最初の導入は、ディレクトリから読み取る関数、opendir()、readdir()、closedir() です。使用すると、最初にファイル ハンドルが開かれ、次に反復的にリストされます。
$base_dir = "filelist/"; $fso = opendir($base_dir); echo $base_dir." " ; while($flist=readdir($fso)){ echo $flist." " ; } closedir($fso) ?> |
ディレクトリ情報が必要な場合は、dirname($path) とbasename($path) を使用して、それぞれパスのディレクトリ部分とファイル名部分を返すことができます。空き容量。
コマンドの作成:
mkdir($path,0777) |
rmdir($path) |
dir -- directory クラスも、ファイル ディレクトリを操作するための重要なクラスです。これには、read、rewind、close という 3 つのメソッドがあり、最初にオープン ファイル ハンドルを使用し、次に使用します。ポインタをお読みください。ここで PHP マニュアルを参照してください:
$d = dir("/etc/php5"); echo "Handle: " . $d->handle . "n"; echo "Path: " . $d->path . "n"; while (false !== ($entry = $d->read())) { echo $entry."n"; } $d->close(); ?> |
ハンドル: リソース ID #2
|
$file = 'dirlist.php'; if (is_readable($file) == false) { die('文件不存在或者无法读取'); } else { echo '存在'; } ?> |
ファイルの存在を確認する関数には file_exists も含まれています (以下に示します) が、これは明らかに is_readable ほど包括的ではありません。ファイルが存在する場合は、
を使用できます。
if (file_exists($file) == false) { die('ファイルが存在しません'); < br/>} $data = file_get_contents($file); echo htmlentities($data); ?> |
$fso = fopen($cacheFile, 'r'); $data = fread($fso, filesize($cacheFile)); fclose($fso); |
バイナリ ファイルを読み取る別の方法もあります:
$data = implode('', file($file)); |
B. ファイルを書き込む
ファイルの読み取りと同じように、最初に書き込み可能かどうかを確認します:
if (is_writable($file) == false) { die("私は鶏の羽です、私はできません" ); } ?> |
$file = 'dirlist.php'; if (is_writable($file) == false) { die('我是鸡毛,我不能'); } $data = '我是可鄙,我想要'; file_put_contents ($file, $data); ?> |
file_put_contents 関数は php5 で新しく導入された関数です (存在しない場合は、function_exists 関数を使用して最初に確認してください)。以下の方法を使用できます。
$f = fopen($file, 'w'); fwrite($f, $data); fclose($f); |
交換してください。
ファイルを書き込むときに、ファイルをロックしてから次のように書き込む必要がある場合があります。
function cache_page($pageurl,$pagedata){ if(!$fso=fopen($pageurl,'w')){ $this->warns('无法打开缓存文件.');//trigger_error return false; } if(!flock($fso,LOCK_EX)){//LOCK_NB,排它型锁定 $this->warns('无法锁定缓存文件.');//trigger_error return false; } if(!fwrite($fso,$pagedata)){//写入字节流,serialize写入其他格式 $this->warns('无法写入缓存文件.');//trigger_error return false; } flock($fso,LOCK_UN);//释放锁定 fclose($fso); return true; } |
C. ファイルのコピーと削除
PHP でのファイルの削除は、unlink 関数を使用するだけで非常に簡単です。
$file = 'dirlist.php'; $result = @unlink ($file); if ($result == false) { echo '蚊子赶走了'; } else { echo '无法赶走'; } ?> |
以上です。
ファイルのコピーも簡単です:
$newfile = 'ji.txt'; # このファイルの親フォルダーは書き込み可能でなければなりません if (file_exists ( $file) == false) { die ('デモはオンラインではないためコピーできません') } $result = copy($file, $newfile); br/>if ($result == false) { echo 'コピーメモリOK' } ?> |
echo date('r', filemtime($file)); |
$owner = posix_getpwuid(fileowner($file)); |
$owner = posix_getpwuid(fileowner($file));
|
$file = 'dirlist.php'; |
$file = 'dirlist.php'; |
// 输出类似:somefile.txt: 1024 bytes $filename = 'somefile.txt'; ?> |
echo $filename . ' . filesize($filename) '; ?> テーブル> ファイルのすべての情報を取得するには、配列を返す stat() 関数があります。 ここでは展開されませんが、キーが何に対応しているかについての詳細情報を確認できます。 4.結論 上記のいくつかのファイル操作を簡単にまとめました。上記の機能に習熟していれば、操作に大きな問題はありません。PHP のファイル操作の機能は、比較的すぐに変化し、非常に強力になります。ファイルも PHP を学習する上で非常に重要な部分です。無視しないでください。
|