Google

NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7">

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