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

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