PHP でのディレクトリとファイルの操作の詳細な説明

WBOY
リリース: 2016-06-13 12:32:38
オリジナル
905 人が閲覧しました

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)
?> ;



これは、ファイル ディレクトリ内のファイルとディレクトリを返すプログラムです (ファイルが 0 の場合は false を返します)。
ディレクトリ情報を知る必要がある場合があります。 dirname($path) とbasename($path) はそれぞれ、パスのディレクトリ部分とファイル名部分を返します。
作成コマンド:
mkdir() を使用して、空き領域を返すことができます。 $path,0777)
、0777 は、非ウィンドウ条件下で umask() 関数によって設定できる許可コードです。
rmdir($path)
は、次のパスを持つファイルを削除します。 $path.
dir -- ディレクトリ クラスは、ファイル ディレクトリも操作します。このクラスには、read、rewind、close という 3 つのメソッドがあります。これは、最初にファイル ハンドルを使用して開きます。ここで PHP マニュアルを参照してください:

コードをコピー コードは次のとおりです:


< ;?php
$d = dir("/etc/php5");
echo "ハンドル: " . $d->handle .
パス: " . ->path . "n";
while (false !== ($entry = $d->read()) {
echo $entry."n"; >$d->close();
?>


出力:

ハンドル: リソース ID #2
パス: /etc/php5
🎜>..
apache
cgi
cli
file ファイル属性には、作成時刻、最終変更時刻、所有者、ファイル グループ、タイプ、サイズなどが含まれます。
以下ではファイル操作に焦点を当ててみましょう
3. ファイルの読み取り
まず、ファイルが読み取れるかどうか (権限の問題)、または 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 関数は最初に作成できます。次に、ポインターを使用してファイル全体を読み取ります。
$fso = fopen($cacheFile, 'r');
$data = fread($fso, filesize($cacheFile)); ($fso);

バイナリ ファイルを読み取る別の方法もあります:
$data = implode('', file($file));
● ファイル
を書き込み、ファイルを読み取ります。



コードをコピーします

コードは次のとおりです:


$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);
それを置き換えます。
ファイルの書き込み時にロックが必要な場合があります。その場合は次のように記述します。



コードをコピー

コードは次のとおりです:


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('キャッシュをロックできません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';このファイルのフォルダーは書き込み可能でなければなりません

if (file_exists($file) == false) {
die ('サンプルはオンラインではないためコピーできません');
$result = copy($file, $newfile);
if ($result == false) {

echo 'メモリをコピーします' } ?> rename() 関数を使用して、フォルダーの名前を変更できます。● ファイル属性の取得 いくつかの一般的な関数を説明します。

最新の変更時刻を取得します。 :




コードをコピー

コードは次のとおりです:


$file = 'test.txt ';
echo date('r', filemtime($file));


返されるものはキャッシュでよく使用されます。
ファイルのアクセス許可、所有者、すべてのグループ、または i ノード内のその他のメタデータが更新されたときに、fileatime()、filectime() 関数がファイルの所有者を返します。
$owner = posix_getpwuid(fileowner($file));
(非ウィンドウ システム)、ileperms() はファイルのアクセス許可を取得します。

コードをコピーしますコードは次のとおりです。


$file = 'dirlist.php';
$perms = substr(sprintf(' %o', fileperms($file) ))、-4);
エコー
?>



filesize() はファイル サイズのバイト数を返します:

コードをコピー コードは次のとおりです:


// 出力は同様です: somefile.txt: 1024 バイト
$filename = 'somefile.txt';
echo $filename ': ' . bytes';
?>

配列を返す関数 stat() があります:

Copyコード コードは次のとおりです:


$file = 'dirlist.php';
$perms = stat($file) ;
var_dump($perms);
?>


ここでは展開されません。結論
上記のいくつかのファイル操作を簡単にまとめました。上記の機能に習熟していれば、リストされた機能は操作に大きな問題はありません。PHP ファイル操作の機能は非常に強力です。 PHP を学習する上で重要な部分です。
を無視しないでください。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート