Documentación offline PHP master

yaz_record

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

En esta página

yaz_record

Devuelve un registro

Descripción#

yaz_record(resource $id, int $pos, string $type): string
```php

La función `yaz_record` inspecciona un registro del conjunto resultado actual que está en la posición especificada por el parámetro `pos`.

## Parámetros

`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.

> [!NOTE]
> 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).

`string`  
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.

`xml`  
El registro se devuelve como un string XML si es posible. En este modo, todos los registros MARC se convierten en [MARCXML](http://www.loc.gov/standards/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 .

`raw`  
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.

`syntax`  
La sintaxis del registro se devuelve como un string, p.e. `USmarc`, `GRS-1`, `XML`, etc.

`database`  
El nombre de la base de datos asociada con el registro en la posición, se devuelve como un string.

`array`  
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).

## Valores devueltos

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.

## Ejemplos

Array para registro GRS-1

Considerar este registro GRS-1 :

    (4,52)Robert M. Pirsig
    (4,70)
          (4,90)
                (2,7)Transworld Publishers, ltd.



Este registro tiene dos nodos a nivel de raíz. El primer elemento del nivel raíz es (4,52) \[tipo tag 4, valor de tag 52\], y tiene datos `Robert M. Pirsig`. El segundo elemento en el nivel raíz (4,70) tiene un subárbol con un elemento simple (4,90). (4,90) tiene a su vez otro subárbol (2,7) con datos `Transworld Publishers, ltd.`.

Si este registro está presente en la posición \$p, entonces
mostrará:

    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.
            )
    )

Trabajar con MARCXML

El siguiente fragmento de 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).
El registro `$rec` puede ser procesado con el procesador Sablotron XSLT de la forma siguiente:
$rec); $res = xslt_process($processor, 'arg:/_xml', $xslfile, NULL, $parms); xslt_free($processor); $res = preg_replace("']*>'", '', $res); echo $res; ?>

```php