yaz_scan

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_scanПодготовка сканирования

Описание

yaz_scan ( resource $id , string $type , string $startterm , array $flags = ? ) : void

Функция подготавливает запрос сканирования для установленного соединения по протоколу Z39.50.

Чтобы передать запрос сканирования на сервер и получить ответ нужно вызвать функцию yaz_wait(). По заверению yaz_wait() вызовите yaz_error() для получения ошибки и yaz_scan_result() для получения результата.

Список параметров

id

Дескриптор соединения, возвращенный yaz_connect().

type

В настоящее время поддерживается только rpn.

startterm

Начальная элемент для сканирования

Форма в которой представлен начальный элемент сканирования задается параметром type.

Синтаксис этого параметра схож с запросом RPN, который описан для yaz_search(). Он состоит из нуля или более операторных настроек @attr, за которыми следует единственная лексема.

flags

Этот необязательный параметр определяет дополнительную информацию для управления поведением запроса сканирования. Из массива флагов доступны три индекса: number (количество запрашиваемых термов), position (позиция терма) и stepSize (размер шага).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Функция PHP которая сканирует заглавия

<?php
function scan_titles($id$startterm
{
  
yaz_scan($id"rpn""@attr 1=4 " $startterm);
  
yaz_wait();
  
$errno yaz_errno($id);
  if (
$errno == 0) {
    
$ar yaz_scan_result($id$options);
    echo 
'Scan ok; ';
    foreach (
$options as $key => $val) {
      echo 
"$key = $val ";
    }
    echo 
'<br /><table>';
    while (list(
$key, list($k$term$tcount)) = each($ar)) {
      if (empty(
$k)) continue;
      echo 
"<tr><td>$term</td><td>$tcount</td></tr>";
    }
    echo 
'</table>';
  } else {
    echo 
"Сканирование не удалось. Ошибка: " yaz_error($id) . "<br />";
  }
}
?>