Web プログラミングでは、ファイル操作は常に頭の痛い問題ですが、CMS システムではファイル操作が必要であり、次のような操作によく遭遇します。ファイル ディレクトリの生成、ファイル (フォルダー) の編集など。ここで、PHP のこれらの関数の詳細な概要を作成し、それらの使用方法を例とともに示します。対応する関数の詳細については、PHP マニュアルを参照してください。重要な点と注意が必要な点のみをまとめます (PHP マニュアルには記載されていません)
2. ディレクトリ操作
最初に紹介するのは、ディレクトリから読み取る関数、opendir()、readdir です。 ()、closedir() を使用すると、まずファイル ハンドルが開き、次にリストが反復処理されます。
$base_dir = "filelist/"; );
echo $base_dir."
while($flist=readdir($fso)){
echo $flist." " ) ?> これは、ファイル ディレクトリ内のファイルとディレクトリを返すプログラムです (ファイルが 0 の場合は false を返します) ディレクトリ情報を知る必要がある場合は、dirname ($path) を使用できます。パスのディレクトリ部分とファイル名部分をそれぞれ返します。 作成コマンド:
mkdir($path, 0777)
、0777 は許可コードです。非ウィンドウでは、umask() 関数を使用して
のパスを持つファイルを削除します。 in $path.
dir -- directory クラスもファイル ディレクトリを操作するための重要なクラスです。read、rewind、close の 3 つのメソッドがあり、これは最初にファイル ハンドルを使用します。次に、ポインタを使用してそれを読み取ります:
$d = dir("/etc/php5");echo "Handle: " 。ハンドル . "n";
echo "パス: " . $d->path . "n";
while (false !== ($entry = $d->read()) {
echo $entry ."n";
}
$d->close();?> ; 出力: ハンドル: リソース ID #2パス: /etc/php5.
..apache
cgicli
ファイルの属性も非常に重要です。ファイル属性には、作成時刻、最終変更時刻、所有者、ファイル グループ、タイプ、サイズなどが含まれます。 ファイルに焦点を当てましょう 3. ファイル操作
A. ファイルを読み取ります
まず、ファイルを確認します。読み取れない (権限の問題) か、ファイルが存在しない場合は、is_readable 関数を使用して情報を取得します。
$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 関数は、以前のバージョンではサポートされていません。まずファイルへのハンドルを作成してから、ポインターを使用してすべてを読み取ることができます。 fopen($cacheFile, 'r'); $data = fread($fso, filesize($cacheFile)); fclose($fso);
バイナリ ファイルを読み取る別の方法もあります:
$data = implode('', file($file)); B. ファイル
の書き込みは、最初に次のように記述できるかどうかを確認します。 $file = 'dirlist .php';if (is_writable($file) == false) {
die(「私は鶏の羽です、無理です」);}
?>
書き込みができる場合は、file_put_contents 関数を使用して次のように入力できます。 false) {
die('私はチキンです、私はできません'); $data = '私は卑劣です、私は欲しいです';
file_put_contents ($file, $data);
file_put_contents 関数は php5 で新しく導入された関数です (存在するかどうかわからない場合は、まず function_exists 関数を使用してください。確認してください) PHP の低いバージョンは使用できません。次の方法を使用できます:
$f = fopen($file, 'w'); fwrite($f, $data) ; を書き込むときにロックする必要がある場合があります。ファイルを作成し、次のように書き込みます:
function cache_page($pageurl,$pagedata){ if(!$fso=fopen($pageurl, 'w')){
$this->warns('Unableキャッシュ ファイルを開きます。');//trigger_error return false } if(!flock($fso,LOCK_EX)){//LOCK_NB, row その他のタイプのロック $this->warns('ロックできませんキャッシュ ファイル。');//trigger_error return false; } if(!fwrite($fso,$pagedata)){//他の形式を書き込むためにシリアル化します $this->warns('Unable ');//trigger_error return false; flock($fso,LOCK_UN);//解放ロック fclose($ fso); }
;
C. ファイルのコピーと削除
php を使用してファイルを削除するのは非常に簡単です:
$file = 'dirlist.php'; result = @unlink ($file ; これも簡単です: $file = 'yang.txt'; $newfile = 'ji.txt'; # このファイルの親フォルダー書き込み可能である必要があります
if (file_exists($ file) == false) { die ('デモはオンラインではないためコピーできません')
} $result = copy($file, $newfile); $result == false) {
echo 'Copy Memory ok' }
?> これらの関数を組み合わせて他の操作を実行することもできます。 D. ファイル属性を取得する いくつかの一般的な関数について説明します: 最新の変更時刻を取得する: $file = 'test.txt';
echo date( 'r', filemtime($file)) ; ?>
は、最終アクセス時刻の取得にも関連しています。 ) ファイルのパーミッションがすべて、またはすべてのグループまたは他の i ノードのメタデータが更新されたとき、fileowner() 関数はファイル所有者を返します。
(非ウィンドウ システム)、ileperms() はファイルのアクセス許可を取得します、
$file = 'dirlist.php';
$perms = substr(sprintf ('%o', fileperms($file) ), -4); echo $perms; ?>
filesize() はファイル サイズのバイト数を返します:
// 出力は次のようになります: somefile.txt: 1024 バイト
$filename = 'somefile.txt'; echo $filename ': ' ' bytes';
?>
ファイル全体を取得する 情報には、配列を返す関数 stat() があります。 = stat($file);
そのキーが何に対応しているかについての詳細情報を確認できます。ここでは展開されません。
http://www.bkjia.com/PHPjc/371506.html www.bkjia.com true http://www.bkjia.com/PHPjc/371506.html 技術記事 どのコンピュータ機器においても、ファイルは必要なオブジェクトであり、Web プログラミングでは、ファイル操作は Web プログラマーにとって常に頭の痛い問題であり、CMS システムでもファイル操作は必要です...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
2024-10-22 09:46:29
2024-10-13 13:53:41
2024-10-12 12:15:51
2024-10-11 22:47:31
2024-10-11 19:36:51
2024-10-11 15:50:41
2024-10-11 15:07:41
2024-10-11 14:21:21
2024-10-11 12:59:11
2024-10-11 12:17:31