1. はじめに
Web プログラミングではファイル操作は常に頭の痛い問題ですが、CMS システムではファイル操作が非常に重要です。ファイル ディレクトリの生成やファイル (フォルダー) の編集などの操作を頻繁に行うことがあります。ここでは、PHP のこれらの関数を詳細にまとめ、その使用方法を例を示して説明します。対応する関数の詳細については、PHP マニュアルを参照してください。ここでは、重要な点と注意が必要な点のみをまとめます (PHP マニュアルには記載されていません)
2. ディレクトリ操作
最初に紹介するのは、ディレクトリから読み取る関数、opendir() です。 、readdir()、closedir() を使用する場合は、最初にファイル ハンドルを開いてから、それを繰り返しリストします:
コードをコピー コードは次のとおりです。
$base_dir = "filelist/";
$fso = opendir($base_dir);
echo $base_dir."
コードをコピー コードは次のとおりです:
< ;?php
$d = dir("/etc/php5");
echo "ハンドル: " . $d->handle .
パス: " . ->path . "n";
while (false !== ($entry = $d->read()) {
echo $entry."n"; >$d->close();
?>
出力:
コードは次のとおりです: $file = 'dirlist.php';
if (is_readable($file) == false) { die('ファイルが存在しないか、読み取ることができません');
} else {
echo '存在します';
}
?>
ファイルの存在を判断する関数には file_exists も含まれていますが (以下に示します)、これは明らかに is_readable ほど包括的ではありません。ファイルが存在する場合は、
をコピーできます。コードは次のとおりです: $file = "filelist.php";
if (file_exists($file) == false) { die('ファイルが存在しません')
}
$data = file_get_contents( $file);
echo htmlentities($data);
?>
ただし、file_get_contents 関数は最初に作成できます。次に、ポインターを使用してファイル全体を読み取ります。
$fso = fopen($cacheFile, 'r');
$data = fread($fso, filesize($cacheFile)); ($fso);
$file = 'dirlist.php';
if (is_writable($file) == false) {
die("私はチキンです、私はできます't" ; 次のように:
$file = 'dirlist.php';
if (is_writable($file) == false) {
die('私は鶏の羽です、私はできません'); } $data = '私は卑劣です、私は欲しいです'; file_put_contents ($file, $data); ?>
file_put_contents 関数は php5 で新しく導入された関数です (存在するかどうかを知らない場合は、まず function_exists 関数を使用してください)。PHP の以前のバージョンでは使用できません。次のメソッドを使用できます:
$f = fopen($file, 'w ');
fwrite($f, $data);
それを置き換えます。
ファイルの書き込み時にロックが必要な場合があります。その場合は次のように記述します。
コードをコピー
if(!flock($fso, LOCK_EX)){//LOCK_NB, 排他的ロック $this->warns('キャッシュをロックできませんfile.');//trigger_error return false; } if(! fwrite($fso,$pagedata)){// バイト ストリームを書き込み、他の形式に書き込むためにシリアル化します
$this ->warns('キャッシュ ファイルに書き込めません。');//trigger_error return false;
}
flock($fso,LOCK_UN);// ロックを解放します
fclose($ fso);
return true;
}
● ファイルのコピーと削除
PHP でファイルを削除するのは非常に簡単です:
コードをコピー
コードは次のとおりです。
$file = 'dirlist.php';
$result = @unlink ($file);
if ($result == false) {
echo '蚊を駆除します ';
} else { echo '取得できません} ?>
ファイルのコピーも簡単です:
>
コードは次のとおりです:
$file = 'yang.txt';
$newfile = 'ji.txt';このファイルのフォルダーは書き込み可能でなければなりません
echo 'メモリをコピーします' } ?> rename() 関数を使用して、フォルダーの名前を変更できます。● ファイル属性の取得 いくつかの一般的な関数を説明します。
最新の変更時刻を取得します。 :
コードをコピー
コードは次のとおりです:
$file = 'test.txt ';
echo date('r', filemtime($file));
コードをコピーしますコードは次のとおりです。
$file = 'dirlist.php';
$perms = substr(sprintf(' %o', fileperms($file) ))、-4);
エコー
?>
コードをコピー コードは次のとおりです:
// 出力は同様です: somefile.txt: 1024 バイト
$filename = 'somefile.txt';
echo $filename ': ' . bytes';
?>
Copyコード コードは次のとおりです:
$file = 'dirlist.php';
$perms = stat($file) ;
var_dump($perms);
?>