yaz_record
(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)
yaz_record — Returns a record
Description
$id
, int $pos
, string $type
) : string
The yaz_record() function inspects a record in the
current result set at the position specified by parameter
pos
.
Parameters
-
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
type
specifies the form of the returned record.Note:
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 ; charset=from, to where from is the original character set of the record and to is the resulting character set (as seen by PHP).
- string
-
The 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 » MARCXML. XML records and SUTRS are returned in their original format. GRS-1 is not supported.
This format is similar to
string
except that MARC records are converted to MARCXMLThis format is suitable if records are processed by an XML parser or XSLT processor afterwards.
- raw
-
The 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. USmarc, GRS-1, XML, etc.
- database
-
The name of database associated with record at the position is returned as a string.
- array
-
The 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 path and data (if data is available).
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 (type, value
String tags normally has a corresponding tag type 3. MARC can also be returned as an array (they are converted to GRS-1 internally).
Return Values
Returns the record at position pos
or an empty
string if no record exists at the given position.
If no database record exists at the given position an empty string is returned.
Examples
Example #1 Array for GRS-1 record
Consider this GRS-1 record:
(4,52)Robert M. Pirsig (4,70) (4,90) (2,7)Transworld Publishers, ltd.
If this record is present at position $p, then
<?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. ) )
Example #2 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 $rec can be processed with the Sablotron XSLT processor as follows:
<?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;
?>
For PHP 5 the XSL extension must be used instead of Sablotron XSLT.
English translation
You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.
Thank you in advance.
Document created the 30/01/2003, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/php-rf-function.yaz-record.html
The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.
References
These references and links indicate documents consulted during the writing of this page, or which may provide additional information, but the authors of these sources can not be held responsible for the content of this page.
The author This site is solely responsible for the way in which the various concepts, and the freedoms that are taken with the reference works, are presented here. Remember that you must cross multiple source information to reduce the risk of errors.