|  | 
 
 
  yaz_recordReturns a record 
  Description
   string yaz_record(resource $id, int$pos, string$type) 
  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 typespecifies 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 stringexcept that
          MARC records are converted to MARCXML 
          This 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 posor 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. 
    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
     
<?php
$ar = yaz_record($id, $p, "array");
print_r($ar);
?>
 
    will output:
     
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 $reccan 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;
?>
 |