PHP: YAZ 関数 - Manual
PHP  
downloads | documentation | faq | getting help | mailing lists | | php.net sites | links | my php.net 
search for in the  
<xslt_setoptyaz_addinfo>
view the version of this page
Last updated: Tue, 21 Dec 2004

CXXXII. YAZ 関数

導入

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

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

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

インストール手順

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>';
   }
}

目次
yaz_addinfo -- 詳細なエラー情報を返す
yaz_ccl_conf -- CCLパーサを設定する
yaz_ccl_parse -- CCLパーサを起動する
yaz_close -- YAZ接続をクローズする
yaz_connect --  ターゲットへの接続およびZ接続を準備する。
yaz_database --  セッション内のデータベースを指定する
yaz_element --  取得時に要素集合の名前を指定する
yaz_errno -- エラー番号を返す
yaz_error -- エラーの内容を返す
yaz_es_result --  Inspects Extended Services Result
yaz_get_option -- Returns value of option for connection
yaz_hits -- 直近の検索に関するヒット数を返す
yaz_itemorder --  ILLリクエストパッケージを関してZ39.50 Item Orderを準備する
yaz_present --  (Z39.50による)取得の準備を行う
yaz_range --  取得するレコードの最大数を指定する
yaz_record -- レコードを返す
yaz_scan_result -- スキャンリクエストの結果を返す
yaz_scan -- スキャンの準備をする
yaz_schema --  Specifies schema for retrieval
yaz_search -- 検索を準備する
yaz_set_option -- Sets one or more options for connection
yaz_sort -- ソートの基準を設定する
yaz_syntax --  取得用に適当なレコード構文を指定する
yaz_wait -- Z39.50リクエストが完了するまで待つ


add a note add a note User Contributed Notes
YAZ 関数
cstdenis at hotmail dot com
16-Jul-2004 01:17
For those wondering what it is:

"This standard defines a client/server based service and protocol for
Information Retrieval. It specifies procedures and formats for a client to search a
database provided by a server, retrieve database records, and perform related
information retrieval functions. The protocol addresses communication between
information retrieval applications at the client and server; it does not address interaction
between the client and the end-user."

<xslt_setoptyaz_addinfo>
 Last updated: Tue, 21 Dec 2004
show source | credits | sitemap | contact | advertising | mirror sites 
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: /
Last updated: Mon Mar 14 08:13:06 2005 Local time zone must be set--see zic manual page