yaz_ccl_parse
(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)
yaz_ccl_parse — Вызывает парсер CCL
Описание
$id
, string $query
, array &$result
) : boolФункция вызывает синтаксический анализатор CCL. Он преобразует данный запрос CCL FIND в запрос RPN, который можно передать функции yaz_search() для выполнения поиска.
Чтобы определить набор допустимых полей CCL, вызовите yaz_ccl_conf() перед этой функцией.
Список параметров
-
id
-
Ресурс соединения, возвращенный yaz_connect().
-
query
-
Запрос CCL FIND.
-
result
-
Если функция была выполнена успешно, это будет массив, содержащий корректный запрос RPN в ключе
rpn
.После сбоя в этом массиве устанавливаются три индекса, указывающие причину возникновения ошибки:
-
errorcode
- код ошибки CCL (целое число) -
errorstring
- строка ошибки CCL -
errorpos
- приблизительная позиция в запросе ошибки (целое число - позиция символа)
-
Возвращаемые значения
Возвращает true
в случае успешного завершения или false
в случае возникновения ошибки.
Примеры
Пример #1 Разбор CCL
Мы попробуем поискать с помощью CCL. В приведенном ниже примере
$ccl
является запросом CCL.
<?php
yaz_ccl_conf($id, $fields); // смотрите пример для yaz_ccl_conf
if (!yaz_ccl_parse($id, $ccl, &$cclresult)) {
echo 'Ошибка: ' . $cclresult["errorstring"];
} else {
$rpn = $cclresult["rpn"];
yaz_search($id, "rpn", $rpn);
}
?>