| | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
基本的な検出基本的な検出 – デフォルトのオプションによるデータソースのパース
単一のファイルの検出たいていの場合は基本的な検出で十分です。しかし、 時にはパーサの精度を調整して最善の結果を取得できるようにしなければならないこともあります。 それを行うのが、各パーサメソッドの 2 番目のパラメータである $option です。 詳細はパーサオプションの一覧を参照ください。 この "math.php" というスクリプトを実行するために必要な PHP のバージョンを検出することを考えてみましょう。
<?php
検出用のスクリプトは、このように非常にシンプルなものとなります。
<?php
デフォルトの出力は Array レンダラを用いたものとなります (その他のレンダラについては後述します。 現時点で何も知らなかったとしても心配する必要はありません)。 標準出力に、次のような結果が表示されます。
array (
'ignored_files' =>
array (
),
'ignored_functions' =>
array (
),
'ignored_extensions' =>
array (
),
'ignored_constants' =>
array (
),
'max_version' => '',
'version' => '4.0.0',
'extensions' =>
array (
0 => 'bcmath',
1 => 'pcre',
),
'constants' =>
array (
),
'tokens' =>
array (
),
'cond_code' =>
array (
0 => 0,
),
)
この結果より、"math.php" スクリプトを実行するには少なくとも PHP 4.0.0 が必要であることがわかります。また、拡張モジュール
ディレクトリの検出アプリケーション内のファイルをひとつひとつ個別に調べていくよりは、 ルートパスを指定してそのディレクトリ配下を一括して調べさせたいこともあるでしょう。 デフォルトでは再帰的にパースを行います。つまり、 指定したディレクトリの子ディレクトリもパースの対象となります。 また、拡張子
PEAR::File_Find パッケージのバージョン 1.3.0 を実行するのに必要な PHP のバージョンを調べることを考えてみましょう。 まずはアーカイブを http://pear.php.net/package/File_Find/download/1.3.0 からダウンロードし、一時ディレクトリ (今回の例では '/tmp') にそれを展開します。 検出用のスクリプトは、このように非常にシンプルなものとなります。
<?php
結果は次のようになります。
array (
'ignored_files' =>
array (
0 => '/tmp/File_Find-1.3.0/package.xml',
1 => '/tmp/File_Find-1.3.0/tests/01glob.phpt',
2 => '/tmp/File_Find-1.3.0/tests/02maptree.phpt',
3 => '/tmp/File_Find-1.3.0/tests/03maptreemultiple.phpt',
4 => '/tmp/File_Find-1.3.0/tests/04search.phpt',
5 => '/tmp/File_Find-1.3.0/tests/05search_inside.phpt',
6 => '/tmp/File_Find-1.3.0/tests/06match_shell.phpt',
7 => '/tmp/File_Find-1.3.0/tests/bug2773.phpt',
),
'ignored_functions' =>
array (
),
'ignored_extensions' =>
array (
),
'ignored_constants' =>
array (
),
'max_version' => '',
'version' => '4.3.0',
'extensions' =>
array (
0 => 'pcre',
),
'constants' =>
array (
0 => '__FILE__',
),
'tokens' =>
array (
),
'cond_code' =>
array (
0 => 4,
),
'/tmp/File_Find-1.3.0/Find.php' =>
array (
'ignored_functions' =>
array (
),
'ignored_extensions' =>
array (
),
'ignored_constants' =>
array (
),
'max_version' => '',
'version' => '4.3.0',
'extensions' =>
array (
0 => 'pcre',
),
'constants' =>
array (
),
'tokens' =>
array (
),
'cond_code' =>
array (
0 => 4,
),
),
'/tmp/File_Find-1.3.0/tests/setup.php' =>
array (
'ignored_functions' =>
array (
),
'ignored_extensions' =>
array (
),
'ignored_constants' =>
array (
),
'max_version' => '',
'version' => '4.0.0',
'extensions' =>
array (
),
'constants' =>
array (
0 => '__FILE__',
),
'tokens' =>
array (
),
'cond_code' =>
array (
0 => 0,
),
),
)
つまり、PEAR::File_Find 1.3.0 には PHP 4.3.0 以降と pcre 拡張モジュールが必要だということです。
そうすると、結果は次のように詳細な形式となります。
'cond_code' =>
array (
0 => 4,
1 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => 'FILE_FIND_DEBUG',
),
),
cond_code のオフセット 1 は配列で、 デバッグモードが true に設定されている場合にのみ登場します。この配列の中身は次のとおりです。
|
|
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「基本的な検出」をGoogle検索
|