CVI. YAZ functions

Introduction

This extension offers a PHP interface to the YAZ toolkit that implements the Z39.50 protocol for information retrieval .

It supports persistent stateless connections very similar to those offered by the various SQL APIs that are available for PHP .

Installation

Compile YAZ and install it . Build PHP with your favourite modules and add option --with-yaz .

 
gunzip

 
-c

 
yaz-1.6.tar.gz|

 
tar

 
xf

 
-

 
gunzip

 
-c

 
php-4.0.X.tar.gz

 
|tar

 
xf

 
-

 
cd

 
yaz-1.6

 
.

 
/

 
configure

 
--prefix=

 
/

 
usr

 
make

 
make

 
install

 
cd

 
.

 
.

 
/

 
php-4.0.X

 
.

 
/

 
configure

 
--with-yaz=

 
/

 
usr

 
/

 
bin

 
make

 
make

 
install





Example

A positive integer represents the ID of a particular association .

דוגמה 1 .

When invoked with no arguments it prints a query form ; else (arguments are supplied ) it searches the targets as given in in array host .

 
$num_hosts

 
=

 
count

 
(

 
$host)

 
;

 
if

 
(empty($term

 
)

 
|

 
|

 
count($host

 
)

 
==

 
0

 
)

 
{

 
echo

 
'

 
form

 
method="get

 
"

 
input

 
type="checkbox

 
"

 
name="host[]

 
"

 
value="bagel.indexdata.dk

 
/

 
gils

 
"

 
GILS

 
test

 
input

 
type="checkbox

 
"

 
name="host[]

 
"

 
value="localhost:9999

 
/

 
Default

 
"

 
local

 
test

 
input

 
type="checkbox

 
"

 
checked="1

 
"

 
name="host[]

 
"

 
value="z3950.bell-labs.com

 
/

 
books

 
"

 
BELL

 
Labs

 
Library

 
br

 
RPN

 
Query

 
:

 
input

 
type="text

 
"

 
size="30

 
"

 
name="term

 
"

 
input

 
type="submit

 
"

 
name="action

 
"

 
value="Search

 
"

 
'

 
;

 
}

 
else

 
{

 
echo

 
'You

 
searced

 
for

 
'

 
.

 
htmlspecialchars($term

 
)

 
.

 
'

 
br

 
'

 
;

 
for

 
($i

 
=

 
0

 
;

 
$i

 
$num_hosts

 
;

 
$i++

 
)

 
{

 
$id[

 
]

 
=

 
yaz_connect($host[$i])

 
;

 
yaz_syntax($id[$i]

 
,"sutrs")

 
;

 
yaz_search($id[$i]

 
,"rpn",$term)

 
;

 
    }

 
yaz_wait()

 
;

 
for

 
($i

 
=

 
0

 
;

 
$i

 
$num_hosts

 
;

 
$i++

 
)

 
{

 
echo

 
'

 
hr

 
'

 
.

 
$host[$i

 
]

 
.

 
"

 
:"

 
;

 
$error

 
=

 
yaz_error($id[$i])

 
;

 
if

 
(!empty($error)

 
)

 
{

 
echo

 
"Error

 
:

 
$error"

 
;

 
}

 
else

 
{

 
$hits

 
=

 
yaz_hits($id[$i])

 
;

 
echo

 
"Result

 
Count

 
$hits"

 
;

 
        }

 
echo

 
'

 
dl

 
'

 
;

 
for

 
($p

 
=

 
1

 
;

 
$p

 
=

 
10

 
;

 
$p++

 
)

 
{

 
$rec

 
=

 
yaz_record($id[$i],$p

 
,"string")

 
;

 
if

 
(empty($rec)

 
)

 
continue

 
;

 
echo

 
"

 
dt

 
b

 
$p

 
/

 
b

 
/

 
dt

 
dd

 
"

 
;

 
echo

 
ereg_replace("\n"

 
,

 
"

 
br

 
\n",$rec)

 
;

 
echo

 
"

 
/

 
dd

 
"

 
;

 
        }

 
echo

 
'

 
/

 
dl

 
'

 
;

 
    }

 
}





תוכן העניינים:
yaz_addinfo -- Returns additional error information
yaz_ccl_conf -- Configure CCL parser
yaz_ccl_parse -- Invoke CCL Parser
yaz_close -- Closes a YAZ connection
yaz_connect -- Prepares for a connection and Z-association to a Z39.50 target.
yaz_database -- Specifies the databases within a session
yaz_element -- Specifies Element-Set Name for retrieval
yaz_errno -- Returns error number
yaz_error -- Returns error description
yaz_hits -- Returns number of hits for last search
yaz_itemorder -- Prepares for Z39.50 Item Order with an ILL-Request package
yaz_present -- Prepares for retrieval (Z39.50 present).
yaz_range -- Specifies the maximum number of records to retrieve
yaz_record -- Returns a record
yaz_scan -- Prepares for a scan
yaz_scan_result -- Returns Scan Response result
yaz_search -- Prepares for a search
yaz_sort -- Sets sorting criteria
yaz_syntax -- Specifies the preferred record syntax for retrieval.
yaz_wait -- Wait for Z39.50 requests to complete