PHP マニュアル
前のページ |  | 次のページ

# CXXIV. YAZ 関数

# 導入

この拡張モジュールは、情報取得用のZ39.50プロトコルを実装する YAZツールキットへのPHPインターフェース を提供するものです。この拡張モジュールにより、Z39.50ターゲット(サー バー)を並列に検索またはスキャンするZ39.50オリジン(クライアント)を 容易に実装することが可能になります。

このモジュールはZ39.50 の複雑さを隠蔽するため、使用法がかなり容 易になります。PHPで利用可能な様々なSQL APIにより提供されているも のに非常によく似たステートレスな持続的接続がサポートされています。 これにより、セッションはステートレスですが、ユーザ間で共有され、 これにより多くの場合に接続および初期化手順が保存されます。

YAZ は、http://www.indexdata.dk/yaz/で取得可能です。この拡張モジュー ルに関する新しい情報、スクリプトの例等を http://www.indexdata.dk/phpyaz/にて 参照可能です。

# インストール手順

YAZをコンパイルし、インストールして下さい。PHPをオプション --with-yaz[=DIR] を付けて他の任意のモジュールとコンパイルして下さい。この手順の概要を 以下に示します。

    gunzip -c yaz-1.6.tar.gz|tar xf -
    gunzip -c php-4.0.X.tar.gz|tar xf -
    cd yaz-1.6
    ./configure --prefix=/usr
    make
    make install
    cd ../php-4.0.X
    ./configure --with-yaz=/usr/bin
    make
    make install

# 実行用の設定

これらの関数の動作は、`php.ini`の設定により変化します。

表 1. YAZ設定オプション

名前 | デフォルト | 変更の可否
--- | --- | ---
yaz.max_links | "100" | PHP_INI_ALL
yaz.log_file | "" | PHP_INI_ALL

PHP_INI_*定数の定義および詳細については、 ini_set()を参照して下さい。

# リソース型

この拡張モジュールはリソース型を全く定義しません。

# 定義済みの定数

この拡張モジュールは定数を全く定義しません。

# 例

PHP/YAZ はターゲット(Z-Associations)との接続を保持し続けます。 正の整数で特定の接続のIDを表します。

例 1. YAZによる並列検索 以下のスクリプトは、APIの並列検索機能のデモです。引数を指定せず にコールした場合、この関数は、クエリフォームを出力します。そう でない場合(引数を指定した場合)は、配列hostにあるターゲットを検 索します。
`$num_hosts = count ($host); if (empty($term) || count($host) == 0) { echo '<form method="get"> <input type="checkbox" name="host[]" value="bagel.indexdata.dk/gils"> GILS test <input type="checkbox" name="host[]" value="localhost:9999/Default"> local test <input type="checkbox" checked="1" name="host[]" value="z3950.bell-labs.com/books"> BELL Labs Library <br> RPN Query: <input type="text" size="30" name="term"> <input type="submit" name="action" value="Search"> '; } else { echo 'You searced for ' . htmlspecialchars($term) . '<br>'; for ($i = 0; $i < $num_hosts; $i++) { $id[] = yaz_connect($host[$i]); yaz_syntax($id[$i],"sutrs"); yaz_search($id[$i],"rpn",$term); } yaz_wait(); for ($i = 0; $i < $num_hosts; $i++) { echo '<hr>' . $host[$i] . ":"; $error = yaz_error($id[$i]); if (!empty($error)) { echo "Error: $error"; } else { $hits = yaz_hits($id[$i]); echo "Result Count $hits"; } echo '<dl>'; for ($p = 1; $p <= 10; $p++) { $rec = yaz_record($id[$i],$p,"string"); if (empty($rec)) continue; echo "<dt><b>$p</b></dt><dd>"; echo ereg_replace("\n", "<br>\n",$rec); echo "</dd>"; } echo '</dl>'; } }`

前のページ | ホーム | 次のページ
xslt_setopt | 上に戻る | yaz_addinfo