CakeFest 2024: The Official CakePHP Conference

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

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top