ホームページ  >  記事  >  バックエンド開発  >  ディレクトリとファイルの操作の詳細 - PHP_PHP チュートリアル

ディレクトリとファイルの操作の詳細 - PHP_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:00:43684ブラウズ

blueidea.com より転載

1. はじめに
どのコンピュータデバイスにおいても、ファイルは必要なオブジェクトであり、Web プログラミングでは、ファイルの操作は Web プログラマーにとって常に頭の痛い問題であり、ファイルこの操作は、 cms システムは、ファイル ディレクトリの生成やファイル (フォルダー) の編集などの操作によく遭遇します。ここで、PHP でのこれらの関数の詳細な概要を作成し、それらの使用方法を例を示して説明します。対応する機能の紹介はphpのマニュアルを参照してください。 (phpのマニュアルには記載されていません)

まず初めに行います。導入はディレクトリから読み取る方法です。関数 opendir()、readdir()、closedir() を使用する場合、最初にファイル ハンドルを開き、次にそれを繰り返しリストします: $base_dir = " filelist/";
$fso = opendir( $base_dir);
echo $base_dir."


" ;
while($flist=readdir($fso)){
echo $flist."
" ;
}
closedir( $fso);
?>
これは、ファイル ディレクトリ内のファイルとディレクトリを返すプログラムです (ファイルが 0 の場合は false を返します)。

場合によっては、ディレクトリを知る必要があることがあります。情報を取得するには、dirname($path) とbasename($path) をそれぞれ使用して、パスのディレクトリ部分とファイル名部分を返すことができます。

作成コマンド:
を使用して、disk_free_space($path) を使用できます。 mkdir($path,0777)
,0777 は、非許可コードです。 umask() 関数は、

rmdir($path)
のパスを持つファイルを削除します。 dir -- ディレクトリ クラスは、ファイル ディレクトリを操作するための重要なクラスでもあり、read、rewind、close の 3 つのメソッドがあり、最初にファイル ハンドルを使用して開き、次にそれを読み取ります。ポインタを使用する場合は、こちらの php マニュアルを参照してください:
$d = dir("/etc/php5");
echo "Handle: " . $d->handle ";パス: " . $d->path . "n";
while (false !== ($entry = $d->read()) {
echo $entry."n";
}
$ d->close();
?>

出力:
ハンドル: リソースID #2
パス: /etc/php5
..
apache
cgi
cli
ファイル属性には、作成時刻、最終変更時刻、所有者、ファイル グループ、タイプ、サイズなどが含まれます。

次の点に焦点を当ててみましょう


3. ファイル操作



ファイルの読み取り
まず、ファイルが読み取れるかどうか (権限の問題)、または is_readable 関数を使用して情報を取得できるかどうかを確認します。: $file = 'dirlist.php'; ($file) == false) {
die('ファイルが存在しないか、読み取ることができません');
} else {
echo 'exists';
?> file には file_exists も含まれています (以下に示します) が、これは明らかに is_readable ほど包括的ではありません。 ) == false) {
die('ファイルが存在しません');
$data = file_get_contents($file);
しかし、file_get_contents 関数はそうではありません以前のバージョンではサポートされており、最初にファイルへのハンドルを作成してから、ポインターを使用してファイル全体を読み取ることができます。
$fso = fopen($cacheFile, 'r');
$data = fread($fso, filesize) ($cacheFile) );
fclose($fso);
$data = implode('', file($file));


ファイルを書き込み、 file 方法は同じで、最初に書き込めるかどうかを確認します:

$file = 'dirlist.php';
if (is_writable($file) == false) {
die("I am鶏の羽、私には無理です ");
}
?>
書けるなら、file_put_contents 関数を使って次のように書くことができます:
$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);

ファイルを書き込むときにロックする必要がある場合があります。 ache_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)){//バイト ストリームを書き込み、シリアル化して他の形式を書き込みます
$this->warns('キャッシュ ファイルを書き込めません。');//trigger_error
return false;
}
flock($fso,LOCK_UN);// ロックを解除します
fclose($fso);
return true;
}


ファイルを削除するのは非常に簡単です、リンク解除を使用します簡単に操作する関数:
$file = 'dirlist.php';
$result = @unlink ($file);
if ($result == false) {
echo '蚊は追い払われました' ;
} else {
echo 'can't get';
?>

ファイルのコピーも簡単です。 newfile = 'ji.txt' ; # このファイルの親フォルダーは書き込み可能でなければなりません
if (file_exists($file) == false) {
die ('サンプルはオンラインではないのでコピーできません'); $result = copy($file, $newfile) ;
if ($result == false) {
echo 'コピーメモリ ok';
?>
フォルダーの名前を変更するには、rename() 関数を使用します。これらの関数を組み合わせて他の操作を行うこともできます。


ファイル属性の取得

いくつかの一般的な関数について説明します。
最新の変更時刻の取得:
$file = 'test.txt';
echo date('r', filemtime( $file));
?>
キャッシュ技術で一般的に使用される Unix タイムスタンプを返します

の場合、最終アクセス時刻も取得します。ファイル権限、すべて または、すべてのグループまたは他の inode のメタデータが更新されたとき、 fileowner() 関数はファイル所有者を返します
$owner = posix_getpwuid(fileowner($file))
(非ウィンドウ システム) 、 ileperms() はファイルの権限を取得します ,
$file = 'dirlist.php';
$perms = substr(sprintf('%o', fileperms($file)), -4);
echo $perms;
?>
filesize() はファイル サイズのバイト数を返します:
// 出力は同様です: somefile.txt: 1024 バイト
$filename = 'somefile.txt' ;
echo $filename . ': ' . filesize($ filename)
?>
配列を返す関数があります: php
$file = 'dirlist.php';
$perms = stat($file);
?> キーが何に対応しているかについての詳細情報を確認できます。ここで展開します


4. 結論


上記でいくつかのファイル操作を簡単にまとめましたが、上記の機能に習熟していれば、操作に大きな問題はありません。ファイル部分も PHP を学ぶ上で非常に重要な部分ですので、無視しないでください。



http://www.bkjia.com/PHPjc/317045.html

www.bkjia.com

tru​​e
http://www.bkjia.com/PHPjc/317045.html
技術記事

blueidea.com より転載 1. はじめに どのようなコンピュータ機器においても、ファイルは必要なオブジェクトであり、Web プログラミングでは、ファイル操作は Web プログラマーにとって常に頭の痛い問題であり、ファイル操作...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。