YAZ 関数とは? わかりやすく解説

YAZ 関数

導入

この拡張モジュールは、情報取得用の Z39.50 プロトコルを実装する YAZ™ ツールキットへの PHP インターフェースを 提供するものです。この拡張モジュールにより、Z39.50 ターゲット(サーバ) を並列に検索またはスキャンする Z39.50 オリジン(クライアント)を 容易に実装することが可能になります。
このモジュールは Z39.50 の複雑さを隠蔽するため、使用法がかなり容易に なります。PHP で利用可能な様々な RDB の API により提供されているものに 非常によく似た、ステートレスな持続的接続がサポートされています。 これは、セッションはステートレスですが、ユーザ間で共有されるということを 意味します。これにより多くの場合に接続および初期化手順が保存されます。
YAZ™ は、» http://www.indexdata.dk/yaz/ で取得可能です。この拡張モジュールに 関する新しい情報、スクリプトの例等を » http://www.indexdata.dk/phpyaz/ にて 参照可能です。
注意: この拡張モジュールは » PECL レポジトリに移動 されており、以下のバージョン以降 PHP にバンドルされなくなっています。 PHP 5.0.0.

インストール手順

YAZ (ANSI/NISO Z39.50 サポート) を取得し、インストールしてください。 » YAZ archive から、ソース形式あるいは さまざまな形式のビルド済みパッケージで YAZ が取得可能です。 Debian GNU/Linux、Suse Linux、FreeBSD のようなシステムでは、 ディストリビューションの一部として YAZ が組み込まれています。
PHP 4 シリーズでは、YAZ 拡張モジュールがバンドルされています(しかし、 YAZ 自体はバンドルされていません)。 オプション --with-yaz[=DIR] を 指定し、他の任意のモジュールとあわせて PHP をコンパイルしてください。
例 2487. Unix 上の PHP 4 での YAZ のコンパイル
   
gunzip -c php-4.4.X.tar.gz|tar xf -
gunzip -c yaz-2.1.8.tar.gz|tar xf -
cd yaz-2.1.8
./configure --prefix=/usr
make
sudo make install
cd ../php-4.4.X.
./configure --with-yaz=/usr/bin
make
sudo make install

  

PHP 5 では YAZ 拡張モジュールは » PECL にあり、共有オブジェクト/dll としてインストールされます。 もし pear がインストールされている場合、YAZ 拡張モジュールを ダウンロードして設定・インストールをする最も簡単な方法は pear コマンドを使用することです。
例 2488. GNU/Debian Linux 上での PECL YAZ のインストール

Debian GNU/Linux システムでは、以下のようにして YAZ および PECL YAZ をインストールします。
    
sudo apt-get install libyaz-dev
sudo pear install yaz

  

Windows では、php_yaz.dllyaz.dll に依存しています。 yaz.dll は、PHP サイトにある Win32 zip アーカイブに 含まれています。また、» YAZ WIN32 area にある Windows 版の YAZ の中にも含まれています。

警告
PHP 5.0.5 の Win32 zip アーカイブに含まれている yaz.dll はバージョンが古すぎます (バージョン 1.9.1 < 要求されるバージョン 2.0.13)。 そのため、» YAZ WIN32 インストール から得られる新しいバージョンの yaz.dll を使用してください。

Windows では、システムが yaz.dll ファイルを 見つけられるよう、PHP のディレクトリを PATH に追加することを 忘れないでください。
YAZ を共有モジュールとして使用する場合、Unix では php.ini の以下の行を 追加(あるいはコメント解除)してください。
   extension=yaz.so
  
また、Windows では以下の行になります。
   extension=php_yaz.dll
  


警告
IMAPrecodeYAZ および Cyrus 拡張モジュールは、組み合わせて使用することはできません。 これは、同一の内部シンボルを使用しているためです。

注意: 上で挙げた問題については、YAZ のバージョン 2.0 で解消されています。

実行時設定

php.ini の設定により動作が変化します。
表 330. YAZ 設定オプション
名前デフォルト変更の可否変更履歴
yaz.max_links"100"PHP_INI_ALLPHP 4.3.0 以降で使用可能です。
yaz.log_fileNULLPHP_INI_ALLPHP 4.3.0 以降で使用可能です。

PHP_INI_* 定数の詳細および定義については 付録 G. php.ini ディレクティブ を参照してください。

リソース型

リソース型は定義されていません。

定義済み定数

定数は定義されていません。

PHP/YAZ はターゲット(Z-Associations)との接続を保持し続けます。 正の整数で特定の接続のIDを表します。
以下のスクリプトは、API の並列検索機能のデモです。引数を指定せずに コールした場合、この関数はクエリフォームを出力します。そうでない場合 (引数を指定した場合)は、配列 host にあるターゲットを 検索します。
例 2489. YAZ による並列検索
<?php
$host=$_REQUEST[host];
$query=$_REQUEST[query];
$num_hosts = count($host);
if (empty($query) || 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="checked"
   name="host[]" value="z3950.loc.gov:7090/voyager" />
       Library of Congress
   <br />
   RPN Query:
   <input type="text" size="30" name="query" />
   <input type="submit" name="action" value="Search" />
   </form>
   ';       
} else {
   echo 'You searched for ' . htmlspecialchars($query) . '<br />';
   for ($i = 0; $i < $num_hosts; $i++) {
       $id[] = yaz_connect($host[$i]);
   yaz_syntax($id[$i], "usmarc");
       yaz_range($id[$i], 1, 10);
       yaz_search($id[$i], "rpn", $query);
   }
   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 nl2br($rec);
           echo "</dd>";
       }
       echo '</dl>';
   }
}
?>


目次

yaz_addinfo — 詳細なエラー情報を返す
yaz_ccl_conf — CCL パーサを設定する
yaz_ccl_parse — CCL パーサを起動する
yaz_close — YAZ 接続をクローズする
yaz_connect — Z39.50 サーバへの接続を準備する
yaz_database — セッション内のデータベースを指定する
yaz_element — 取得時の要素集合の名前を指定する
yaz_errno — エラー番号を返す
yaz_error — エラーの内容を返す
yaz_es_result — 拡張サービスの結果を調査する
yaz_es — 拡張サービスのリクエストを準備する
yaz_get_option — 接続に関するオプションの値を返す
yaz_hits — 直近の検索に関するヒット数を返す
yaz_itemorder — ILLリクエストパッケージを関してZ39.50 Item Orderを準備する
yaz_present — (Z39.50による)取得の準備を行う
yaz_range — 取得するレコードの範囲を指定する
yaz_record — レコードを返す
yaz_scan_result — スキャンリクエストの結果を返す
yaz_scan — スキャンの準備をする
yaz_schema — 取得するスキーマを指定する
yaz_search — 検索を準備する
yaz_set_option — 接続に関するひとつあるいは複数のオプションを設定する
yaz_sort — ソート条件を設定する
yaz_syntax — 取得用に適当なレコード構文を指定する
yaz_wait — Z39.50 リクエストが完了するまで待つ

「YAZ 関数」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「YAZ 関数」の関連用語

YAZ 関数のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



YAZ 関数のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2024 by the PHP Documentation Group.
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2024 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2024 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2024 GRAS Group, Inc.RSS