2000-08-07 20:15:14 +00:00
|
|
|
<reference id="ref.yaz">
|
2000-08-07 20:43:44 +00:00
|
|
|
<title>YAZ</title>
|
|
|
|
<titleabbrev>YAZ</titleabbrev>
|
2000-08-07 20:15:14 +00:00
|
|
|
|
|
|
|
<partintro>
|
|
|
|
<simpara>
|
|
|
|
The <function>yaz</function> functions wrap the YAZ API. The home page
|
|
|
|
of the project is <ulink url="&url.yaz;">&url.yaz;</ulink>. Information
|
|
|
|
about the phpyaz module can be found at
|
|
|
|
<ulink url="&url.yaz-phpyaz;">&url.yaz-phpyaz;</ulink>.
|
|
|
|
</simpara>
|
|
|
|
<simpara>
|
|
|
|
PHP/YAZ is much simpler to use than the C API for YAZ but less flexible. The
|
|
|
|
intent is to make it easy to build basic client functions. It supports
|
|
|
|
persistent stateless connections very similar to those offered by the
|
|
|
|
various SQL APIs that are available for PHP. This means that sessions are
|
|
|
|
stateless but shared amongst users, thus saving the connect and INIT steps
|
|
|
|
in many cases.
|
|
|
|
</simpara>
|
|
|
|
<simpara>
|
|
|
|
Before compiling PHP with the PHP/YAZ module you'll need the YAZ toolkit.
|
|
|
|
Build YAZ and install it. Build PHP with your favourite modules and add
|
|
|
|
option --with-yaz. Your task is roughly the following:
|
2000-08-07 20:52:14 +00:00
|
|
|
</simpara>
|
|
|
|
<informalexample>
|
|
|
|
<programlisting>
|
2000-08-07 20:43:44 +00:00
|
|
|
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
|
2000-08-07 20:52:14 +00:00
|
|
|
</programlisting>
|
|
|
|
</informalexample>
|
2000-08-07 20:15:14 +00:00
|
|
|
<simpara>
|
|
|
|
PHP/YAZ keeps track of connections with targets (Z-Associations). A positive
|
|
|
|
integer represents the ID of a particular association.
|
|
|
|
</simpara>
|
|
|
|
<simpara>
|
|
|
|
The script below demonstrates the parallel searching feature of the API.
|
|
|
|
When invoked it either prints a query form (if no arguments are supplied) or
|
|
|
|
if there are arguments (term and one or more hosts) it searches the targets
|
|
|
|
in array host.
|
|
|
|
</simpara>
|
|
|
|
<example>
|
|
|
|
<title><function>readline</function></title>
|
|
|
|
<programlisting role="php">
|
2000-08-07 20:43:44 +00:00
|
|
|
$num_hosts = count ($host);
|
|
|
|
if (empty($term) || count($host) == 0) {
|
2000-08-07 20:15:14 +00:00
|
|
|
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">
|
|
|
|
';
|
2000-08-07 20:43:44 +00:00
|
|
|
} else {
|
2000-08-07 20:15:14 +00:00
|
|
|
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();
|
2000-08-07 20:43:44 +00:00
|
|
|
for ($i = 0; $i < $num_hosts; $i++) {
|
2000-08-07 20:15:14 +00:00
|
|
|
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>';
|
2000-08-07 20:43:44 +00:00
|
|
|
for ($p = 1; $p <= 10; $p++) {
|
2000-08-07 20:15:14 +00:00
|
|
|
$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>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</programlisting>
|
|
|
|
</example>
|
|
|
|
</partintro>
|
|
|
|
|
|
|
|
<refentry id="function.yaz-addinfo">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>yaz_addinfo</refname>
|
2000-08-07 20:43:44 +00:00
|
|
|
<refpurpose>Returns additional error information</refpurpose>
|
2000-08-07 20:15:14 +00:00
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
|
|
|
<funcdef>int <function>yaz_addinfo</function></funcdef>
|
|
|
|
<paramdef>int <parameter>id</parameter></paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
|
|
|
Returns additional error message for target (last request). An empty string
|
|
|
|
is returned if last operation was a success or if no additional information
|
|
|
|
was provided by the target.
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
|
|
|
<refentry id="function.yaz-close">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>yaz_close</refname>
|
2000-08-07 20:43:44 +00:00
|
|
|
<refpurpose>Closes a YAZ connection</refpurpose>
|
2000-08-07 20:15:14 +00:00
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
|
|
|
<funcdef>int <function>yaz_close</function></funcdef>
|
|
|
|
<paramdef>int <parameter>id</parameter></paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
|
|
|
Closes a connection to a target. The application can no longer refer to the
|
|
|
|
target with the given id.
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
|
|
|
<refentry id="function.yaz-connect">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>yaz_connect</refname>
|
2000-08-07 20:43:44 +00:00
|
|
|
<refpurpose>Returns a positive association ID on success; zero on failure</refpurpose>
|
2000-08-07 20:15:14 +00:00
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
|
|
|
<funcdef>int <function>yaz_connect</function></funcdef>
|
|
|
|
<paramdef>string <parameter>zurl</parameter></paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
|
|
|
<function>yaz_connect</function> prepares for a connection to a Z39.50
|
|
|
|
target. The zurl argument takes the form host[:port][/database]. If port is
|
|
|
|
omitted 210 is used. If database is omitted Default is used. This function
|
|
|
|
is non-blocking and doesn't attempt to establish a socket - it merely
|
|
|
|
prepares a connect to be performed later when <function>yaz_wait</function>
|
|
|
|
is called.
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
|
|
|
<refentry id="function.yaz-errno">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>yaz_errno</refname>
|
2000-08-07 20:43:44 +00:00
|
|
|
<refpurpose>Returns error number</refpurpose>
|
2000-08-07 20:15:14 +00:00
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
|
|
|
<funcdef>int <function>yaz_errno</function></funcdef>
|
|
|
|
<paramdef>int <parameter>id</parameter></paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
|
|
|
Returns error for target (last request). A positive value is returned if
|
|
|
|
the target returned a diagnostic code; a value of zero is returned if no
|
|
|
|
errors occurred (success); negative value is returned for other errors
|
|
|
|
targets didn't indicate the error in question.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
<function>yaz_errno</function> should be called after network activity for
|
|
|
|
each target - (after <function>yaz_wait</function> returns) to determine
|
|
|
|
the success or failure of the last operation (e.g. search).
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
|
|
|
<refentry id="function.yaz-error">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>yaz_error</refname>
|
|
|
|
<refpurpose>Returns error description.</refpurpose>
|
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
|
|
|
<funcdef>int <function>yaz_error</function></funcdef>
|
|
|
|
<paramdef>int <parameter>id</parameter></paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
|
|
|
Returns error message for target (last request). An empty string is
|
|
|
|
returned if last operation was a success.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
<function>yaz_error</function> returns a english message corresponding to
|
|
|
|
the last error number as returned by <function>yaz_errno</function>.
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
|
|
|
<refentry id="function.yaz-hits">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>yaz_hits</refname>
|
2000-08-07 20:43:44 +00:00
|
|
|
<refpurpose>Returns number of hits for last search</refpurpose>
|
2000-08-07 20:15:14 +00:00
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
|
|
|
<funcdef>int <function>yaz_hits</function></funcdef>
|
|
|
|
<paramdef>int <parameter>id</parameter></paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
|
|
|
<function>yaz_hits</function> returns number of hits for last search.
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
|
|
|
<refentry id="function.yaz-range">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>yaz_range</refname>
|
2000-08-07 20:43:44 +00:00
|
|
|
<refpurpose>Specifies the maximum number of records to retrieve</refpurpose>
|
2000-08-07 20:15:14 +00:00
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
|
|
|
<funcdef>int <function>yaz_range</function></funcdef>
|
|
|
|
<paramdef>int <parameter>id</parameter></paramdef>
|
|
|
|
<paramdef>int <parameter>start</parameter></paramdef>
|
|
|
|
<paramdef>int <parameter>number</parameter></paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
|
|
|
This function is used in conjunction with <function>yaz_search</function>
|
|
|
|
to specify the maximum number of records to retrieve (number) and the first
|
|
|
|
record position (start). If this function is not invoked (only
|
|
|
|
<function>yaz_search</function>) start is set to 1 and number is set to 10.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
Returns true on success; false on error.
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
|
|
|
<refentry id="function.yaz-record">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>yaz_record</refname>
|
2000-08-07 20:43:44 +00:00
|
|
|
<refpurpose>Returns a record</refpurpose>
|
2000-08-07 20:15:14 +00:00
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
|
|
|
<funcdef>int <function>yaz_record</function></funcdef>
|
|
|
|
<paramdef>int <parameter>id</parameter></paramdef>
|
|
|
|
<paramdef>int <parameter>pos</parameter></paramdef>
|
|
|
|
<paramdef>string <parameter>type</parameter></paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
|
|
|
Returns record at position or empty string if no record exists at given
|
|
|
|
position.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
The <function>yaz_record</function> function inspects a record in the
|
|
|
|
current result set at the position specified. If no database record exists
|
|
|
|
at the given position an empty string is returned. The argument, type,
|
|
|
|
specifies the form of the returned record. If type is "string" the record
|
|
|
|
is returned in a string representation suitable for printing (for XML and
|
|
|
|
SUTRS). If type is "array" the record is returned as an array
|
|
|
|
representation (for structured records).
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
|
|
|
<refentry id="function.yaz-search">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>yaz_search</refname>
|
2000-08-07 20:43:44 +00:00
|
|
|
<refpurpose>Prepares for a search</refpurpose>
|
2000-08-07 20:15:14 +00:00
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
|
|
|
<funcdef>int <function>yaz_search</function></funcdef>
|
|
|
|
<paramdef>int <parameter>id</parameter></paramdef>
|
|
|
|
<paramdef>string <parameter>type</parameter></paramdef>
|
|
|
|
<paramdef>string <parameter>query</parameter></paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
|
|
|
<function>yaz_search</function> prepares for a search on the target with
|
|
|
|
given id. The type represents the query type - only "rpn" is supported now
|
|
|
|
in which case the third argument is a prefix notation query as used by
|
|
|
|
YAZ. Like <function>yaz_connect</function> this function is non-blocking
|
|
|
|
and only prepares for a search to be executed later when
|
|
|
|
<function>yaz_wait</function> is called.
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
|
|
|
<refentry id="function.yaz-syntax">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>yaz_syntax</refname>
|
2000-08-07 20:43:44 +00:00
|
|
|
<refpurpose>Specifies the preferred record syntax for retrieval</refpurpose>
|
2000-08-07 20:15:14 +00:00
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
|
|
|
<funcdef>int <function>yaz_syntax</function></funcdef>
|
|
|
|
<paramdef>int <parameter>id</parameter></paramdef>
|
|
|
|
<paramdef>string <parameter>syntax</parameter></paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
|
|
|
This function is used in conjunction with <function>yaz_search</function>
|
|
|
|
to specify the preferred record syntax for retrieval.
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
|
|
|
<refentry id="function.yaz-wait">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>yaz_wait</refname>
|
2000-08-07 20:43:44 +00:00
|
|
|
<refpurpose>Executes queries</refpurpose>
|
2000-08-07 20:15:14 +00:00
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
|
|
|
<funcdef>int <function>yaz_wait</function></funcdef>
|
|
|
|
<paramdef>int <parameter>id</parameter></paramdef>
|
|
|
|
<paramdef>string <parameter>syntax</parameter></paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
|
|
|
This function carries out networked (blocked) activity for outstanding
|
|
|
|
requests which have been prepared by the functions
|
|
|
|
<function>yaz_connect</function>, <function>yaz_search</function>.
|
|
|
|
<function>yaz_wait</function> returns when all targets have either
|
|
|
|
completed all requests or otherwise completed (in case of errors).
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
</reference>
|
|
|
|
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
|
|
Local variables:
|
|
|
|
mode: sgml
|
|
|
|
sgml-omittag:t
|
|
|
|
sgml-shorttag:t
|
|
|
|
sgml-minimize-attributes:nil
|
|
|
|
sgml-always-quote-attributes:t
|
|
|
|
sgml-indent-step:1
|
|
|
|
sgml-indent-data:t
|
|
|
|
sgml-parent-document:nil
|
|
|
|
sgml-default-dtd-file:"../../manual.ced"
|
|
|
|
sgml-exposed-tags:nil
|
|
|
|
sgml-local-catalogs:nil
|
|
|
|
sgml-local-ecat-files:nil
|
|
|
|
End:
|
|
|
|
-->
|