(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)
yaz_record — Devuelve un registro
$id
, int $pos
, string $type
)
La función yaz_record() inspecciona un registro del
conjunto resultado actual que está en la posición especificada por el parámetro
pos
.
id
El recurso de conexión devuelto por yaz_connect().
pos
La posición del registro. Las posiciones de los registros en el conjunto resultado están numeradas con 1, 2, ... $hits donde $hits es el contador devuelto por yaz_hits().
type
El parámetro type
especifica la forma del
registro devuelto.
Nota:
Es la aplicación responsable de asegurar realmente que los registros son devueltos en el formato correcto por el servidor Z39.50/SRW. El type indicado únicamente especifica una conversión que se realizará en el lado cliente (en PHP/YAZ).
Además de la conversion del registro transferido a un string/array, PHP/YAZ también puede realizar una conversión de mapa de caracteres del registro. Esto es recomendado especialmente para USMARC/MARC21 puesto que éstos se devuelven habitualmente en el mapa de caracteres MARC-8 que no está soportado por navegadores, etc. Para especificar una conversión, añadir ; charset=from, to donde from es el mapa de caracteres original del registro y to es el mapa de caracteres resultante (desde el punto de vista PHP).
El registro se devuelve como un string de visualización simple. En este modo, todos los registros MARC se convierten a un formato línea a línea ya que ISO2709 es difícilmente legible. Los registros XML y SUTRS se devuelven en su formato original. GRS-1 se devuelve en un (feo) formato línea a línea.
Este formato es adecuado si los registros se mostrarán de forma rápida - para depuración - o porque no es factible realizar una visualización adecuada.
El registro se devuelve como un string XML si es posible. En este modo, todos los registros MARC se convierten en » MARCXML. Los registros XML y SUTRS se devuelven en su formato original. GRS-1 no está soportado.
Este formato es parecido a string
excepto por los
registros MARC que se convierten a MARCXML
Este formato es adecuado si los registros se procesan posteriormente por un interpretador XML o un procesador XSLT .
El registro se devuelve como un string en su formato original. Este tipo es adecuado para MARC, XML y SUTRS. No funciona con GRS-1.
Los registros MARC se devuelven como un string ISO2709. XML y SUTRS son devueltos como strings.
La sintaxis del registro se devuelve como un string, p.e. USmarc, GRS-1, XML, etc.
El nombre de la base de datos asociada con el registro en la posición, se devuelve como un string.
El registro se devuelve como un array que refleja la estructura GRS-1. Este tipo es adecuado para MARC y GRS-1. XML, SUTRS no están soportados y si el registro actual es XML o SUTRS se devolverá un string vacío.
El array devuelto consiste en una lista correspondiente a cada hoja/nodo interno de GRS-1. Cada lista de elementos consiste en una sublista con el primer elemento path y data (si los datos están disponibles).
El camino de acceso, que es un string, contiene una lista de tres componentes (del registro estructurado GRS-1) de la raíz a la hoja. Cada componente es un par de tipo etiqueta/valor de etiqueta de la forma (type, value
Las etiguqetas normalmente tienen un tipo tag 3. MARC también puede ser devuelto como un array (se convierten a GRS-1 internamente).
Devuelve el registro que se encuentra en la posición pos
o un string
vacío si no existe ningún registro en la posición indicada.
Si no hay registro en la posición indicada en la base de datos, se devolverá un string vacío.
Ejemplo #1 Array para registro GRS-1
Considerar este registro GRS-1 :
(4,52)Robert M. Pirsig (4,70) (4,90) (2,7)Transworld Publishers, ltd.
Si este registro está presente en la posición $p, entonces
<?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. ) )
Ejemplo #2 Trabajando con MARCXML
El siguiente fragmento PHP devuelve un registro MARC21/USMARC como MARCXML. El registro original se devuelve en marc-8 (desconocido para muchos interpretadores XML), así que lo convertimos a UTF-8 (que todos los interpretadores XML deben soportar).
<?php
$rec = yaz_record($id, $p, "xml; charset=marc-8,utf-8");
?>
El registro $rec puede ser procesado con el procesador Sablotron XSLT de la forma siguiente:
<?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;
?>
Para PHP 5 la extensión XSL debe ser utilizada en vez de Sablotron XSLT.