yaz_ccl_parse

(PHP 4 >= 4.0.5, PHP 5)

yaz_ccl_parse -- Appelle l'analyseur CCL

Description

bool yaz_ccl_parse ( resource id, string query, array &result )

yaz_ccl_parse() appelle l'analyseur CCL. Il convertit une requête CCL FIND en une requête RPN qui peut être passée à yaz_search() pour effectuer une recherche. Pour définir un champ CCL valide, utilisez la fonction yaz_ccl_conf() avant celle-ci. Si la requête query a pu être convertie en RPN, yaz_ccl_parse() retourne TRUE, et l'index rpn du tableau result contient une requête RPN valide. Si la requête n'a pas pu être convertie, (pour n'importe quelle raison, comme syntaxe invalide, champ inconnu...), yaz_ccl_parse() retourne FALSE. Trois index sont alors créés dans le tableau de résultat : errorcode (code d'erreur CCL, un entier), errorstring (message d'erreur CCL), et errorpos position estimée de l'erreur dans la requête (entier, position en nombre de caractères).

Exemple 1. Analyseur CCL

Nous allons tenté une recherche en utilisant CCL. Dans l'exmple suivant, $ccl est la requête CCL.

<?php
yaz_ccl_conf($id, $fields);  // voir l'exemple sur la fonction yaz_ccl_conf
if (!yaz_ccl_parse($id, $ccl, &$cclresult)) {
    echo 'Erreur : ' . $cclresult["errorstring"];
} else {
    $rpn = $cclresult["rpn"];
    yaz_search($id, "rpn", $rpn);
}
?>