SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

PHP 基礎編3 - 標準ファイル I/O fopen、unlink、flock、file、opendir、readdir

■fopen (ファイルオープン)

  $fno = fopen("path/filename", 'r');
  |             |                |_ r 読み取り専用
  |             |                   r+ 入出力
  |             |                   w  書き込み専用
  |             |                   w+ 入出力(上書き)
  |             |                   a  追加出力
  |             |                   a+ 入出力(追加出力)
  |             |_ ファイル名
  |_ ファイルハンドル
       Flase = エラー

■fclose (ファイルクローズ)

  fclose($fno);
         |_ ファイルハンドル

  ・オープンされていないファイルハンドルをクローズしようとするとエラーが
    発生するので注意。

■unlink (ファイル削除)

  $rcd = unlink("path/filename");
  |              |_ ファイル名
  |_ True  = 正常
     False = エラー

■file_exists (ファイル存在確認)

  $rcd = file_exists("path/filename");
  |                   |_ ファイル名
  |_ True  = 存在する
     False = 存在しない

■filesize (ファイルサイズ)

  $size = filesize("path/filename");
  |                |_ ファイル名
  |_ バイト数

■filemtime (タイムスタンプ)

  $time = filemtime("path/filename");
  |                |_ ファイル名
  |_ UNIX タイムスタンプ

  $dttm = date('Y.m.d H:i:s', filemtime("path/filename"));
  |             |_ 書式
  |_ '2002.06.01 15:00:00'

■copy (ファイルコピー)

  $rcd = copy("path/filename", "path2/filename2");
  |            |                |_ コピー先ファイル名
  |            |_ コピー元ファイル名
  |_ True  = 正常
     False = エラー

■rename (ファイル名変更)

  $rcd = rename("path/filename", "path2/filename2");
  |             |                 |_ 新ファイル名
  |             |_ 旧ファイル名
  |_ True  = 正常
     False = エラー

■flock (ファイルロック、排他制御)

  flock($fno, 2);
        |     |_ 1 読み込み用共有ロック (PHP4 では、LOCK_SH 定数あり)
        |        2 書き込み用排他ロック (PHP4 では、LOCK_EX 定数あり)
        |        3 ロック解除           (PHP4 では、LOCK_UN 定数あり)
        |_ ファイルハンドル

  set_file_buffer($fno, 0);
                        |_ ファイルロックを使用する場合、
                           fwrite のバッファリングを 0 指定する方が
                           誤動作を防げる。

■テキストストリーム I/O サンプル

  【例1】入力
  if (!($fno = fopen("test.txt", 'r'))) {
    die;
  }
  while (!feof($fno)) {
    $rec = fgets($fno, 32000);
  }
  fclose($fno);

  【例2】入力
  $rec = file("test.txt");

  reset($rec);
  while ($a = each($rec)) {
    print "<P>$a[0] - $a[1]</P>\n";
  }

  【例3】入力 (foreach は、PHP4 でのみ使用可能)
  $rec = file("test.txt");

  foreach ($rec as $a) {
    print "<P>$a</P>\n";
  }

  【例4】出力
  if (!($fno = fopen("test.txt", 'w'))) {
    die;
  }
  fwrite($fno, "aaaaa\n", 32000);
  fwrite($fno, "bbbbb\n", 32000);
  fclose($fno);

■opendir (ディレクトリオープン)

  $dir = opendir("path");
  |               |_ ディレクトリ
  |_ ファイルハンドル
       Flase = エラー

■closedir (ディレクトリクローズ)

  closedir($dir);
           |_ ファイルハンドル

■ディレクトリ参照サンプル

  【例】
  if (!($dir = opendir("./"))) {
    die;
  }
  while ($fnm = readdir($dir)) {
    print "<P>$fnm</P>\n";
  }
  closedir($dir);

  ** 『.』と『..』も含まれるで注意。

  【例】指定拡張子だけを取得
  if (!($dir = opendir("./"))) {
    die;
  }
  while ($fnm = readdir($dir)) {
    if (ereg('.php$', $fnm)) {
      print "<P>$fnm</P>\n";
    }
  }
  closedir($dir);

  【例】昇順
  if (!($dir = opendir("./"))) {
    die;
  }
  while ($fnm[] = readdir($dir));
  closedir($dir);
  sort($fnm);
  reset($fnm);
  while ($a = each($fnm)) {
    print "<P>$a[1]</P>\n";
  }

  ** 『.』と『..』も含まれるで注意。

  【例】降順
  if (!($dir = opendir("./"))) {
    die;
  }
  while ($fnm[] = readdir($dir));
  closedir($dir);
  rsort($fnm);
  reset($fnm);
  while ($a = each($fnm)) {
    print "<P>$a[1]</P>\n";
  }

  ** 『.』と『..』も含まれるで注意。

■PHP 基礎編資料
■PHP + MySQL 編資料
■CGI-Perl 基礎編資料
■CGI-Perl 基礎実地編資料
■CGI-Perl 応用実地編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2024 Y.SAK