| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
リーダーリーダー – アーカイブへのファイルの取得
導入リーダーは、ファイルやディレクトリの一覧を表すオブジェクトです。 これらのファイルは動的に作成することもできますし、 既存の物理ファイルを使用することもできます。 たとえば、ディレクトリ用のリーダークラスや File_Archive がサポートする各種アーカイブ形式を処理するためのリーダーがあります。 そして、それぞれが同じインターフェイスを持っています。 リーダーを作成するには File_Archive ファクトリを使用します。 重要な関数は read() 関数です。
この関数の URL が、読み込みたい内容を表します。 Generation of sources
<?php symbolic 属性は、 読み込んだファイルを後でどのように表示するかを表します。 $URL がディレクトリの場合は、$URL が $symbolic ($symbolic が null の場合は '') で置き換えられます。 したがって、最初の例では、カレントディレクトリが 'Path/to/dir' であるかのようにファイルが表示されます。 デフォルトでは $symbolic は空なので、 Path/to/dir がファイル名から取り除かれます。 Path/to/dir を $symbolic に設定すれば、フルパス Path/to/dir を保持できます。 $URL がファイルの場合は、ファイル名のみが保持されて $symbolic がそこに付け加えられます。 つまり、2 番目の例では、元ファイル名は file.txt となります。 シンボリック名 foo を指定すると、 これは foo/file.txt となります。 $uncompression パラメータは、 ツリーをファイルにパースする際に何個のファイルを伸長するかを表します。 デフォルトでは伸長は行いません。したがって、 File_Archive::read('archive.tar/inner/dir', 'inner/dir') を実行した際に archive.tar の中にもし archive.tar/inner/dir/file.tgz というファイルがあれば、 この第二のアーカイブはディレクトリではなくファイルとして扱われます。 $uncompression が 0 であるため、このアーカイブは伸長されないのです。 $uncompression を 1 にすると、 file.tgz はディレクトリとして扱われます。 しかし、このアーカイブの中のファイルは伸長されません。 $uncompression を -1 にすると、 何段階でもすべてのファイルを伸長します。
$directoryDepth パラメータは、 そのリーダーが読み込むディレクトリ数の制限値を指定します。 マルチリーダーマルチリーダーを使用すると、複数のソースをひとつにまとめることができます。 マルチリーダーを作成するには File_Archive::readMulti() 関数を使用します。 マルチリーダー
<?php データリーダーの中身の読み込みすべてのリーダーは、次のようなインターフェイスを提供しています。
データリーダーの中身の一覧の表示
<?php リーダーを使用する関数引数としてリーダーを受け取る File_Archive のすべての関数は、文字列および配列の両方の形式を受け付けます。 文字列は、File_Archive::read 関数を用いて自動的にリーダーとして解釈されます。 配列はマルチリーダーと解釈されます。 リーダーは参照渡しとなるので、生の文字列や配列ではなく変数を渡す必要があります。 したがって、先ほどの例は次のように書き換えることもできます。 マルチリーダー
<?php |
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「リーダー」をGoogle検索
|