yaz_record
yaz_record
Returns a record
string **yaz_record** resource $id int $pos string $type
The function inspects a record in the
current result set at the position specified by parameter
.
yaz_record``pos
id
The connection resource returned by .
yaz_connect
pos
The record position. Records positions in a result set are numbered 1,
2, ... $hits where $hits is the count returned by .
yaz_hits
type
The specifies the form of the
returned record.
type
Opmerking: > It is the application which is responsible for actually ensuring that the records are returned from the Z39.50/SRW server in the proper format. The type given only specifies a conversion to take place on the client side (in PHP/YAZ).
Besides conversion of the transfer record to a string/array, PHP/YAZ
it is also possible to perform a character set conversion of the
record. Especially for USMARC/MARC21 that is recommended since
these are typically returned in the character set MARC-8 that is
not supported by browsers, etc. To specify a conversion, add
where
is the original character set
of the record and is the resulting character
set (as seen by PHP).
`; charset=``,`
stringThe record is returned as a string for simple display.
In this mode, all MARC records are converted to a line-by-line format
since ISO2709 is hardly readable.
XML records and SUTRS are returned in their original format.
GRS-1 are returned in a (ugly) line-by-line format.
This format is suitable if records are to be displayed in a quick way - for debugging - or because it is not feasible to perform proper display.
xml
The record is returned as an XML string if possible.
In this mode, all MARC records are converted to
.
XML records and SUTRS are returned in their original format.
GRS-1 is not supported.
MARCXML
This format is similar to except that
MARC records are converted to MARCXML
`string`
This format is suitable if records are processed by an XML parser or XSLT processor afterwards.
rawThe record is returned as a string in its original form.
This type is suitable for MARC, XML and SUTRS. It does not
work for GRS-1.
MARC records are returned as a ISO2709 string. XML and SUTRS are returned as strings.
syntax
The syntax of the record is returned as a string, i.e.
, ,
, etc.
USmarc``GRS-1``XML
databaseThe name of database associated with record at the position
is returned as a string.
arrayThe record is returned as an array that reflects the GRS-1
structure. This type is suitable for MARC and GRS-1. XML, SUTRS
are not supported and if the actual record is XML or SUTRS an
empty string will be returned.
The array returned consists of a list corresponding to
each leaf/internal node of GRS-1. Each list item consists
a sub list with first element and
(if data is available).
*path**data*
The path which is a string holds a list of each tree component (of
the structured GRS-1 record) from root to leaf. Each component is
a tag type, tag value pair of the form
`(``,`
String tags normally has a corresponding tag type 3. MARC can also be returned as an array (they are converted to GRS-1 internally).
Returns the record at position or an empty
string if no record exists at the given position.
pos
If no database record exists at the given position an empty string is returned.
Voorbeeld: Array for GRS-1 record
Consider this GRS-1 record:
This record has two nodes at root level. First element at root level is
(4,52) [tag type 4, tag value 52], and has data . Second element at root level (4,70) has a subtree with
a single element (4,90). (4,90) has yet another sub tree (2,7) with data
.
(4,52)Robert M. Pirsig
(4,70)
(4,90)
(2,7)Transworld Publishers, ltd.
Robert M. Pirsig``Transworld Publishers, ltd.
If this record is present at position $p, then
will output:
<?php
$ar = yaz_record($id, $p, "array");
print_r($ar);
?>
Array
(
[0] => Array
(
[0] => (4,52)
[1] => Robert M. Pirsig
)
[1] => Array
(
[0] => (4,70)
)
[2] => Array
(
[0] => (4,70)(4,90)
)
[3] => Array
(
[0] => (4,70)(4,90)(2,7)
[1] => Transworld Publishers, ltd.
)
)
Voorbeeld: Working with MARCXML
The following PHP snippet returns a MARC21/USMARC record as MARCXML.
The original record is returned in marc-8 (unknown to most XML parsers),
so we convert it to UTF-8 (which all XML parsers must support).
<?php
$rec = yaz_record($id, $p, "xml; charset=marc-8,utf-8");
?>
The record can be processed with the
Sablotron XSLT processor as follows:
$rec
<?php
$xslfile = 'display.xsl';
$processor = xslt_create();
$parms = array('/_xml' => $rec);
$res = xslt_process($processor, 'arg:/_xml', $xslfile, NULL, $parms);
xslt_free($processor);
$res = preg_replace("'</?html[^>]*>'", '', $res);
echo $res;
?>