(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 クエリを含む配列となります。
失敗した場合は、以下の 3 つの添え字を含む配列となり、失敗の原因を示します。
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 'Error: ' . $cclresult["errorstring"];
} else {
$rpn = $cclresult["rpn"];
yaz_search($id, "rpn", $rpn);
}
?>