To display holdings data set the syntax and the record format to "opac" (at least for Horizon ILS). It will give you an xml, containg <holding> elements with all info:
<?php
$z = yaz_connect(...
yaz_syntax($z, 'opac');
yaz_search($z, 'rpn', '@attr 1=4 "title%"');
yaz_wait();
$hits = yaz_hits($z);
yaz_range($z, 1, $hits);
yaz_present($z);
for($i = 1; $i <= $hits; $i++)
my_display(yaz_record($z, $i, 'opac'));
yaz_close($z);
function my_display($s)
{
$lines = explode("\n", trim($s));
var_dump($lines);
}
?>
yaz_search
(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)
yaz_search — Bir arama düzenler
Açıklama
$id
, string $tür
, string $sorgu
)yaz_search() işlevi belirtilen bağlantı için bir arama düzenler.
yaz_connect() işlevi gibi bu işlev de engellenmeyen kipte çalışır ve yaz_wait() çağrısına hazırlık olarak bir arama işlemi düzenler.
Değiştirgeler
-
id -
yaz_connect() tarafından döndürülmüş bağlantı özkaynağı.
-
tür -
Sorgu türü - şimdilik sadece "rpn" desteklenmekte olup, bu durumda üçüncü değiştirge, önek sorgu gösteriminde bir Type-1 sorgusu belirtir.
-
sorgu -
Z39.50 standardında tanımlandığı gibi Type-1 sorgusunun dizgesel gösterimi olarak RPN sorgusu. Sorgu dizgesi boşluklarla ayrılmış dizgeciklerden oluşur ve boşluk içeren dizgeciklerin tırnak içine alınması gerekir. @ (kuyruklu a) karakteri ile başlayan dizgecikler işleç olarak, diğerleri arama terimleri olarak ele alınır.
RPN İşleçleri İfade Sözdizimi Açıklama @and sorgu1 sorgu2 sorgu1 ve sorgu2'nin kesişimi @or sorgu1 sorgu2 sorgu1 ve sorgu2'nin birleşimi @not sorgu1 sorgu2 sorgu1 değildir sorgu2 @set isim Sonuç kümesi gönderimi @attrset küme sorgu Sorgu için öznitelik kümesi belirtir. Bu ifadeye sadece tüm sorgunun en başında bir defalığına izin verilir. @attr [küme] tür=değer sorgu Sorguya özniteliği uygular. tür ve değer birer tamsayı olup öznitelik türünü ve değerini belirtir. küme ise kullanıldığı takdirde öznitelik kümesini belirtir. Öznitelikler hakkında bilgi edinmek için » Z39.50 Maintenance Agency sitesine bakınız.
Bilginize:
Daha hoş bir gösterim isterseniz CCL çözümleyici - yaz_ccl_conf() ve yaz_ccl_parse() işlevlerini - kullanın.
Dönen Değerler
Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.
Örnekler
Örnek 1 - Sorgu örnekleri - Aşağıdaki gibi basit ifadeleri aratabilirsiniz
computer
"knuth donald"
@attr 1=1003 @attr 4=1 "knuth donald"
@and @or a b @not @or c d e
(a or b) and ((c or d) not e)
Daha karmaşık bir örnek:
@attrset gils @and @attr 1=4 art @attr 1=2000 company
When querying a SRU/SRW server, the "type" parameter must(?) be specified as "cql", e.g.
yaz_search($handle, "cql", "bath.isbn=1234");
Quick Reference For Attribute Fields
(eg: "@attr 2=" refers to the Relation attribute)
1 = Use Field
2 = Relation
3 = Position
4 = Structure
5 = Truncate
6 = Completeness
