ホームページ  >  記事  >  バックエンド開発  >  PHPファイルディレクトリ操作実装プログラム(1/2)_PHPチュートリアル

PHPファイルディレクトリ操作実装プログラム(1/2)_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:13:30730ブラウズ

PHP には、fopen、rdir、filesize、opendir、readdir、fcolse、fread など、ファイルまたはディレクトリの操作に特化した関数があります。これらはすべてファイルとディレクトリの操作関数です。

2. ディレクトリ操作

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

コードは次のとおりですコードをコピー ディレクトリの情報を知る必要がある場合は、 dirname($path) と Basename($path) を使用して、それぞれパスのディレクトリ部分とファイル名部分を返すことができます。フリースペース
$base_dir = "ファイルリスト/"; $fso = opendir($base_dir); echo $base_dir."
" ; while($flist=readdir($fso)){
エコー $flist."
" ; }
クローズドIR($fso)
?>




これはファイルディレクトリ配下のファイルとディレクトリを返すプログラムです(ファイルが0の場合はfalseを返します)
コマンドの作成:

コードは次のとおりです

コードをコピーコードは次のとおりです
mkdir($path,0777)

、0777 は許可コードであり、非ウィンドウ条件下で umask() 関数を使用して設定できます。

コードをコピー

rmdir($path)
$path にパスが含まれるファイルは削除されます。

dir -- ディレクトリ クラスは、ファイル ディレクトリを操作するための重要なクラスでもあり、read、rewind、close の 3 つのメソッドを持ちます。これは、最初にファイル ハンドルを使用してファイルを開きます。そして、ポインタを使用してそれを読み取ります。ここで php マニュアルを参照してください:

コードは次のとおりです

コードをコピー

$d = dir("/etc/php5"); echo "ハンドル: " . $d->ハンドル . "n"; echo "パス: " . $d->パス . while (false !== ($entry = $d->read())) { エコー $entry."n"; } $d->close(); ?> クリ



出力:

ハンドル: リソースID #2
パス: /etc/php5

..
アパッチ

CG
ファイル属性にも非常に重要です。ファイル属性には、作成時刻、最終変更時刻、所有者、ファイル グループ、タイプ、サイズなどが含まれます。

以下ではファイル操作に焦点を当てましょう。



3. ファイル操作


● ファイルを読む

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

コードは次のとおりです


コードをコピー

$file = 'dirlist.php'; if (is_readable($file) == false) {

die('ファイルが存在しないか、読み取ることができません'); } その他 { エコー「存在する」 } ?>

ファイルの存在を判断する関数には file_exists も含まれています (以下に示します) が、これは明らかに is_readable ほど包括的ではありません。ファイルが存在する場合に使用できます

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

$file = "ファイルリスト.php"; if (file_exists($file) == false) {
die('ファイルが存在しません'); }
$data = ファイル_get_contents($file); エコー htmlentities($data); ?>



ただし、file_get_contents 関数は、以前のバージョンではサポートされていません。まずファイルへのハンドルを作成してから、ポインターを使用してすべてを読み取ることができます。
コードは次のとおりです

コードをコピーコードは次のとおりです
$fso = fopen($cacheFile, 'r'); $data = fread($fso, ファイルサイズ($cacheFile)); fclose($fso);

バイナリ ファイルを読み取る別の方法もあります:

コードをコピー

● ファイルを書き込む
$data = implode('', file($file));

ファイルの読み取りと同様に、まず書き込み可能かどうかを確認します:

コードは次のとおりです

コードをコピー

die(「私は鶏の羽なので、無理です」); } ?>コードをコピー
$file = 'dirlist.php'; if (is_writable($file) == false) {

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



コードは次のとおりです

$file = 'dirlist.php'; if (is_writable($file) == false) { $data = '私は卑劣です、私は欲しいです'; file_put_contents ($file, $data); ?>$f = fopen($file, 'w'); fwrite($f, $data); fclose($f);
die(「私は鶏の羽です、私はできません」); }
file_put_contents 関数は php5 で新しく導入された関数です (存在するかどうかわからない場合は、まず function_exists 関数を使用して確認してください)。 以下の方法を使用できます。



コードは次のとおりです

コードをコピー


交換してください。

ファイルを書き込むとき、場合によってはファイルをロックしてから次のように書き込む必要があります:

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

関数cache_page($pageurl,$pagedata){
if(!$fso=fopen($pageurl,'w')){
$this->warns('キャッシュ ファイルを開けません。');//trigger_error
false を返します。 }
if(!flock($fso,LOCK_EX)){//LOCK_NB、排他的ロック
$this->warns('キャッシュ ファイルをロックできません。');//trigger_error
false を返します。 }
if(!fwrite($fso,$pagedata)){//バイトストリームに書き込み、シリアル化して他の形式に書き込みます
$this->warns('キャッシュ ファイルに書き込めません。');//trigger_error
false を返します。 }
flock($fso,LOCK_UN);//ロックを解除します
fclose($fso); true を返します。 }




1 2

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

www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/629155.html技術記事 PHP には、ファイルまたはディレクトリの操作に特有の関数があります。fopen、rdir、filesize、opendir、readdir、fcolse、fread などは、すべてファイルおよびディレクトリの操作関数です。 2. ディレクトリ操作 最初の紹介は...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。