ホームページ  >  記事  >  php教程  >  PHP でのファイルの読み取り、書き込み、削除操作 (PHP でのファイルとディレクトリの操作)

PHP でのファイルの読み取り、書き込み、削除操作 (PHP でのファイルとディレクトリの操作)

WBOY
WBOYオリジナル
2016-06-13 12:01:581157ブラウズ

1: ディレクトリ操作
最初に紹介されるのは、ディレクトリから読み取る関数、opendir()、readdir()、closedir() です。使用すると、最初にファイル ハンドルが開かれ、次にファイル ハンドルが開かれます。反復リスト:

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


$base_dir = "filelist /";
$fso = opendir($base_dir);
echo $base_dir."


" ;
while($flist=readdir($fso)){
echo $flist."< ;br/>" ;
closedir($fso)
?>

にあるファイルとディレクトリを返すプログラムです。ファイルディレクトリ (0 個のファイルは false を返します)
ディレクトリの情報を知る必要がある場合は、dirname($path) とbasename($path) を使用して、ファイルのディレクトリ部分とファイル名部分を返すことができます。それぞれのパスを返すには、disk_free_space($path) を使用できます。 、非ウィンドウの umask() 関数によって設定できます。
rmdir ($path)
$path 内のパスを持つファイルを削除します。 dir -- directory クラスも同様です。ファイル ディレクトリを操作するための重要なクラスです。read、rewind、close という 3 つのメソッドがあり、最初にファイル ハンドルを使用して開き、次にポインタを使用して読み取ります。ここ:


コードをコピー

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

$d = dir(" /etc/php5"); echo "ハンドル: " . $d->handle . "n"; echo "パス: " . $d->path . "n";

while (false !== ($entry = $d->read()) {

echo $entry." n";
$d->close(); > ?>
[code]
出力:
ハンドル: リソース ID #2
パス: /etc/php5
、タイプ、サイズなど
ファイル操作について

2: ファイル操作

ファイルの読み取り
1 つ目は、ファイルを読み取ることができるかどうかを確認することです (権限の問題)。または、ファイルが存在する場合は、 is_readable 関数で情報を取得します。:
[code]
$file = 'dirlist.php';
if (is_readable($file) == false) {
die('ファイルが存在しないか、読み取ることができません');
} else {
echo '存在します';

is も 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));
fclose($fso);


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

PHP でのファイルとディレクトリの操作方法を詳しく学びます

1: はじめに ファイルはどのコンピューターデバイスにも必要なオブジェクトであり、Web プログラミングでは、ファイル操作は 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) は、
dir -- ディレクトリ内のパスを持つファイルを削除します。このクラスは、ファイル ディレクトリを操作するための重要なクラスでもあり、read、rewind、close という 3 つのメソッドがあり、最初にファイル ハンドルを使用して開き、次にポインタを使用して読み取ります。 PHP マニュアルはこちら:

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


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

出力:
ハンドル: リソース ID #2
パス: /etc/php5
..
apache
cgi
cli
ファイルの属性も非常に重要です。ファイル属性には、作成時刻、最終変更時刻、所有者、ファイル グループ、タイプ、サイズなどが含まれます。
以下ではファイル操作に焦点を当てましょう。 .

3: ファイル操作
ファイルの読み取り まず、ファイルが読み取れるかどうか (権限の問題)、または is_readable 関数が使用できるかどうかを確認します。情報を取得するには:


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

$file = 'dirlist.php';
if (is_readable($file) == false) {
die('ファイルが存在しないか、読み取ることができません')
} else {
echo 'exists';
}
?>


ファイルの存在を判断する関数には 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("私は鶏の羽です、私はできません"); }

? >



書き込みできる場合は、file_put_contents 関数を使用して次のように書き込むことができます:



code

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

$file = 'dirlist.php' if (is_writable($file) == false) { die('私は鶏の羽です、私はできません'); }

$data = '私は卑劣です、私は欲しいです';

file_put_contents ($file, $data );
?>


php5 で新しく導入された関数 (存在するかどうかわからない場合は、function_exists 関数を使用して確認してください) は、下位バージョンでは使用できません。次のメソッドを使用できます。
$f = fopen($file, 'w');
fclose($f); >それを置き換えます。
ファイルを書き込むときにロックが必要な場合があります。その場合は次のように記述します。


コードをコピーします。

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


functioncache_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;
}


ファイルのコピー、削除
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 'copy Memory ok';
}
?>


これらの関数を組み合わせて他の操作を実行することもできます。 🎜>ファイル属性の取得
いくつかの一般的な関数について説明します:
最新の変更時刻の取得:

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

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


返されるのは、キャッシュ技術でよく使用される unix タイムスタンプです。

ファイルが最後にアクセスされた時刻も取得します。 i ノード内の権限、所有者、すべてのグループ、またはその他のメタデータが更新されると、 fileowner() 関数はファイルの所有者を返します。 $owner = posix_getpwuid(fileowner($file)) (非ウィンドウ システム)、ileperms() はファイルを取得します。権限、


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

$file = 'dirlist. php';
$perms = substr('%o', fileperms ($file)), -4);

<🎜; >filesize() はファイル サイズをバイト単位で返します:


コードをコピー

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

// 出力は次のようになります: somefile.txt: 1024 bytes $filename = ' somefile.txt';

echo $filename . ': ' ' bytes'; 🎜>?>



ファイルのすべての情報を取得し、戻り配列があります 関数 stat() 関数:



コードをコピーします


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

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


ここでは展開されません。

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

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