Учебник РНР
Назад Вперёд

yaz_scan

(PHP 4 >= 4.0.5)

yaz_scan - готовит к сканированию.

Описание

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

Эта функция для Z39.50 Scan Request. Аргумент id специфицирует целевой ID. Точка стартового термина задана параметром startterm. Форма, в которой специфицирован starting term, задаётся параметром type. В настоящее время поддерживается type rpn. Необязательный flags специфицирует дополнительную информацию для управления поведением scan-запроса. В настоящее время из flags читаются три индекса: number (количество запрошенных терминов), position (предпочтительная позиция для term) и stepSize (предпочтительный размер шага/step). Для реального трансфера Scan Request в цель и получения Scan Response обязана вызываться функция yaz_wait(). По завершении yaz_wait() вызывайте yaz_error() и yaz_scan_result() для обработки ответа.

Синтаксис startterm аналогичен RPN query, как описано в yaz_search(). Параметр startterm состоит из нуль или более спецификаций @attr-операции, с последующей единственной лексемой/token.

Пример 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>";
        }
      }

Назад Оглавление Вперёд
yaz_scan_result Вверхyaz_search