ホームページ >バックエンド開発 >PHPチュートリアル >PHPのディレクトリとファイルの操作に関するチュートリアルの例

PHPのディレクトリとファイルの操作に関するチュートリアルの例

WBOY
WBOYオリジナル
2016-07-25 09:11:43836ブラウズ

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

  1. $base_dir= "filelist/";
  2. $fso=opendir($base_dir);
  3. echo $base_dir."
    ";
  4. while($flist=readdir($fso)){
  5. echo $flist. "< br/>";
  6. }
  7. closedir($fso)
  8. ?>
コードをコピー

これは、ファイルディレクトリ配下のファイルとディレクトリを返すプログラムです(ファイルが0の場合はfalseを返します) .

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

コマンドの作成: mkdir($path,0777): 0777 は許可コードで、非ウィンドウ条件下で umask() 関数を使用して設定できます。 rmdir($path): $path 内のパスを持つファイルを削除します。

2. ファイル操作

新しいファイル まず、作成するファイルが配置されているディレクトリの権限を確認します。推奨デバイスは 777 です。新しいファイルの名前には絶対パスを使用することをお勧めします。

  1. $filename="test.txt";
  2. $fp=fopen("$filename", "w+") //ファイルポインタを開いてファイルを作成します
  3. if ( ! is_writable( $filename) ){
  4. die("ファイル:" .$filename. "書き込み不可です。確認してください!");
  5. }
  6. //fwrite($filename, "$filename に書き込みたいものは何でも。";
  7. fclose ($fp); //ポインターを閉じる
コードをコピー

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

  1. $file = 'dirlist. php';
  2. if ( is_readable($file) == false) {
  3. die('ファイルが存在しないか、読み取れません');
  4. } else {
  5. echo '存在します';
  6. }
  7. ?>
コードをコピーします
Judge file 既存の関数には file_exists (以下に示します) も含まれていますが、これは明らかに is_readable ほど包括的ではありません。ファイルが存在する場合、それを使用できます

  1. $file。 = "filelist.php";
  2. if (file_exists ($file) == false) {
  3. die('ファイルが存在しません');
  4. }
  5. $data = file_get_contents($file);
  6. echo htmlentities($data) ;
  7. ?>
コードをコピー
ただし、file_get_contents 関数は、以前のバージョンではサポートされていません。まずファイルへのハンドルを作成してから、ポインターを使用してすべてを読み取ることができます。

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

$data = implode('', file($file));

ファイルを書き込む

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

    $file = 'dirlist.php';
  1. if (is_writable($file) == false) {
  2. die("You have no right to write!");
  3. }
  4. ?>
コードをコピー
書けるなら、file_put_contents 関数を使って次のように書くことができます。

    $file = 'dirlist.php';
  1. if (is_writable($file) == false) {
  2. die('私は鶏の羽です、私はできません');
  3. }
  4. $ data = '私は卑劣です、私は欲しい';
  5. file_put_contents ($file, $data);
  6. ?>
コードをコピー
file_put_contents 関数は、php5 で新しく導入された関数です (存在するかどうかは分からないので、 function_exists を使用してください。 関数を最初に判断する必要があります。 PHP の以前のバージョンは使用できません。 以下の方法が使用できます。

    $f = fopen($file, 'w');
  1. fwrite($f, $data);
  2. fclose($f);
コードをコピー
交換してください。

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

    functioncache_page($pageurl,$pagedata){
  1. if(!$fso=fopen($pageurl,'w')){
  2. $this->warns('キャッシュ ファイルを開けません。' ) ;//trigger_error
  3. return false;
  4. }
  5. if(!flock($fso,LOCK_EX)){//LOCK_NB、排他ロック
  6. $this->warns('キャッシュ ファイルをロックできません。');// trigger_error
  7. return false;
  8. }
  9. if(!fwrite($fso,$pagedata)){//バイトストリームを書き込み、シリアル化して他の形式を書き込みます
  10. $this->warns('キャッシュ ファイルを書き込めません。' );/ /trigger_error
  11. return false;
  12. }
  13. flock($fso,LOCK_UN);//ロックを解除する
  14. fclose($fso);
  15. return true;
  16. }
コードをコピー

ファイルのコピー、削除 PHP でのファイルの削除は非常に簡単です。リンク解除関数を使用するだけです。

  1. $file = 'dirlist.php';
  2. $result = @unlink ($file);
  3. if ($result == false) {
  4. echo '蚊は追い払われました' ;
  5. } else {
  6. echo '削除できません';
  7. }
  8. ?>
コードをコピーします

ファイルをコピー:

  1. $file = 'yang.txt';
  2. $newfile = 'ji.txt'; # このファイルの親フォルダーは書き込み可能である必要があります
  3. if (file_exists($file) == false ) {
  4. die ('デモはオンラインではないためコピーできません');
  5. }
  6. $result = copy($file, $newfile);
  7. if ($result == false) {
  8. echo 'メモリのコピーはOKです';
  9. }
  10. ?>
コードをコピーします

rename() 関数を使用して、フォルダーの名前を変更できます。これらの関数を組み合わせることで、他の操作も実現できます。

ファイル属性を取得する

いくつかの一般的な機能についてお話しましょう: 最終変更時刻を取得します。

  1. $file = 'test.txt';
  2. echo date('r', filemtime($file));
  3. ?>
コードをコピー

returned Speaker Unix タイムスタンプの 1 つであり、これはキャッシュ テクノロジで一般的に使用されます。

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

  1. $file = 'dirlist.php';
  2. $perms = substr(sprintf('%o', fileperms($file)), -4);
  3. echo $perms;
  4. ?>
コードをコピー

filesize() はファイル サイズをバイト単位で返します。

  1. // 出力は同様です: somefile.txt: 1024 バイト

  2. $filename = 'somefile.txt';

  3. echo $filename . ': ' . filesize($filename) ' bytes';
  4. ?

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

$file = 'dirlist.php';
    $perms = stat($file);
  1. var_dump($perms);
  2. ?>
  3. Copyコード
興味のある記事:
phpファイルの操作コードの例

phpファイル操作の小さな例 テキストファイル操作のための優れたPHPクラス PHPファイルの操作方法に関するQ&A phpにおけるディレクトリとファイルの操作を詳しく解説

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