top

Описание функции yaz-scan



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


corner
My pencil ;)
Главная     Сервисы     Портфолио     Проги     Видео     Контакты     Ссылки     Текст