(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)
yaz_scan — Подготовка сканирования
Функция подготавливает запрос сканирования для установленного соединения по протоколу 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 />";
  }
}
?>