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