|  | 
 yaz_record    (PHP 4 >= 4.0.1, PHP 5) yaz_record -- Returns a recordDescriptionstring yaz_record  ( resource id, int pos, string type) 
   Returns the record at position pos or an empty
   string if no record exists at the given position.
   
   The yaz_record() function inspects a record in the
   current result set at the position specified by parameter
   pos. If no database record exists at the given
   position an empty string is returned. 
   
   Record positions in a result set are numbered 1, 2, ... $hits where
   $hits is the count returned by yaz_hits().
   
   The type specifies the form of the
   returned record.
   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 MARCXML
      
      This format is suitable if records are processed by an XML parser
      or XSLT processor afterwareds.
     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).
     
注: 
    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).
   | 例子 1. Array for GRS-1 record 
    Consider GRS-1 record
     | (4,52)Robert M. Pirsig
(4,70)
      (4,90)
            (2,7)Transworld Publishers, ltd. | 
 
    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 
    Robert M. Pirsig . 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 Transworld Publishers,
     ltd. .
    
    If this record is present at position $p, then
     | 
$ar = yaz_record($id, $p, "array");print_r($ar);
 | 
 
    produces
     | 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.
        )
) | 
 | 
 | 例子 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).
     | 
$rec = yaz_record($id, $p, "xml; charset=marc-8,utf-8");
 | 
 
    The record $rec can be processed with
    the Sablotron XSLT processor as follows:
    
     | 
$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);
 print $res;
 | 
 
    For PHP5 the XSL extension can be
    used instead of Sablotron XSLT.
    | 
 |  |