yaz_scan

(PHP 4 = 4.0.5)

yaz_scan -- スキャンの準備をする

説明

int yaz_scan ( int id, string type, string startterm [, array flags])

この関数は、Z39.50スキャンリクエストの準備をします。引数 id はターゲットIDです。スキャンを開始する 言葉の場所は、 startterm で指定します。 開始語を指定する形式は、 type で指定します。 現在、 rpn 型がサポートされています。 オプションの flags によりスキャンリクエスト の動作を制御する追加情報を指定します。現在、次の3つの添字が、現在、 flagsから読み込まれます。 number (リクエストされた語の数)、 position (要求された語の位置)、 stepSize (要求されたステップ数)。 実際にスキャンリクエストをターゲットに送信し、スキャンレスポンス を受信する際には、 yaz_wait() をコールする必要が あります。 yaz_wait() が完了した後、応答を処理す るために、 yaz_error() および yaz_scan_result() をコールします。

startterm の構文は、 yaz_search() で説明いたRPNクエリに似ています。 starttermは、ゼロ以上の @attr 演算子の後にトーク ンが一つだけ続く形式となります。

例 1タイトルをスキャンするPHP関数

function scan_titles($id, $starterm) {
        yaz_scan($id,"rpn", "@attr 1=4 " . $starterm);
        yaz_wait();
        $errno = yaz_errno($id);
        if ($errno == 0) {
          $ar = yaz_scan_result($id, $options);
          echo 'Scan ok; ';
          $ar = yaz_scan_result($id,  $options);
          while(list($key,$val)=each($options)) {
             echo "$key = $val  nbsp;";
          }
          echo ' br  table  tr  td ';
          while(list($key,list($k, $term, $tcount))=each($ar)) {
            if (empty($k)) continue;
            echo " tr  td $term /td  td ";
            echo $tcount;
            echo " /td  /tr ";
          }
          echo ' /table ';
        } else {
          echo "Scan failed. Error: " . yaz_error($id) . " br ";
        }
      }