(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)
yaz_record — Retourne un résultat
$id, int $pos, string $type): string
   La fonction yaz_record() retourne un enregistrement dans
   le jeu de résultats courant à la position spécifiée par le paramètre
   pos.
  
idLa ressource de connexion retournée par yaz_connect().
posLa position de l'enregistrement. Les positions des enregistrements dans un jeu de résultats sont numérotés de 1 jusqu'au nombre retourné par yaz_hits().
type
       Le type spécifie la forme du résultat retourné.
      
Note:
C'est l'application qui est responsable pour s'assurer que les résultats retournés à partir du serveur Z39.50/SRW sont dans un format correct. Le type donné spécifie seulement une conversion qui doit avoir lieu sur le côté client (dans PHP/YAZ).
       Sans compter la conversion du transfert de résultats de chaîne de
       caractères en tableau, PHP/YAZ est aussi possible d'effectuer une
       conversion de jeu de caractères du résultat. En particulier pour
       USMARC/MARC21 qui est recommandé puisque ces résultats sont normalement
       retournés dans le jeu de caractères MARC-8 qui n'est pas supporté par
       les navigateurs, etc. Pour spécifier une conversion, ajoutez ;
       charset=from,
       to ou from est le
       jeu de caractères orignal du résultat et to
       est le jeu de résultats à obtenir (comme vu par PHP).
      
string
          L'enregistrement est retourné comme une chaîne de caractères pour
          affichage simple. Dans ce mode, tous les enregistrements MARC sont
          convertis dans un format ligne par ligne puisque ISO2709 est
          difficile à lire. Les enregistrements XML et SUTRS sont retournés
          dans leur format original. GRS-1 est retourné dans un format
          ligne par ligne (laid).
         
Ce format est approprié si les enregistrements seront affichés rapidement (pour déboguage) ou parce que ce n'est pas faisable d'effectuer un affichage approprié.
xmlL'enregistrement est retourné comme une chaîne de caractères XML si possible. Dans ce mode, tous les enregistrements MARC sont convertis en » MARCXML. Les enregistrements XML et SUTRS sont retournés dans leur format original. GRS-1 n'est pas supporté.
          Ce format est similaire à string à l'exception
          que les enregistrements MARC sont convertis en MARCXML
         
Ce format est approprié si les enregistrements sont analysés par la suite par un analyseur XML ou un processeur XSLT.
rawL'enregistrement est retourné comme une chaîne de caractères dans sa forme originale. Ce type est approprié pour MARC, XML et SUTRS. Il ne fonctionne pas pour GRS-1.
Les enregistrements MARC sont retournés comme une chaîne de caractères ISO2709. XML et SUTRS sont retournés comme des chaînes de caractères.
syntax
          La syntaxe de l'enregistrement est retournée comme une chaîne de
          caractères, par exemple USmarc,
          GRS-1, XML, etc.
         
databaseLe nom de la base de données associée aux résultats à la position est retourné comme une chaîne de caractères.
arrayL'enregistrement est retourné comme un tableau qui réfléchit la structure GRS-1. Ce type est approprié pour MARC et GRS-1. XML, SUTRS ne sont pas supportés et, si l'enregistrement actuel est XML ou SUTRS, une chaîne de caractères vide sera retournée.
Le tableau retourné consiste en une liste correspondant à chaque feuille/nœud interne de GRS-1. Chaque item de la liste consiste à une sous-liste avec le premier élément path et data (si les données sont disponibles).
          Le chemin, qui est une chaîne de caractères, contient une liste de chaque composant
          de l'arbre (de la structure des enregistrements GRS-1) depuis la racine vers l'extrémité.
         Chaque composant est une paire de type de balise/valeur sous la forme
         (type,
         value
         
Les balises de chaîne de caractères ont normalement une correspondance avec le type tag 3. MARC peut aussi être retourné comme un tableau (ils sont convertis en GRS-1 de manière interne).
   Retourne l'enregistrement à la position pos ou une
   chaîne vide si aucun enregistrement n'existe à la position donnée.
  
Si aucun enregistrement de base de données n'existe à la position donnée une chaîne vide est retournée.
Exemple #1 Tableau pour des enregistrements GRS-1
Considérez les enregistrements GRS-1
(4,52)Robert M. Pirsig
(4,70)
      (4,90)
            (2,7)Transworld Publishers, ltd.
Robert M. Pirsig.
    Le deuxième élément de la racine (4,70) a un sous-arbre avec un élément simple (4,90).
    (4,90) a maintenant un sous-arbre (2,7) avec comme donnée Transworld Publishers,
    ltd..
   Si cet enregistrement est présent à la position $p, alors
<?php
$ar = yaz_record($id, $p, "array");
print_r($ar);
?>
L'exemple ci-dessus va afficher :
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.
        )
)
Exemple #2 Travail avec MARCXML
Le script PHP ci-dessous retourne un enregistrement MARC21/USMARC comme MARCXML. L'enregistrement original est retourné dans le jeu de caractères marc-8 (inconnu de beaucoup d'analyseur XML), donc nous le convertissons en UTF-8 (que tous les analyseurs XML supportent).
<?php
$rec = yaz_record($id, $p, "xml; charset=marc-8,utf-8");
?>
    L'enregistrement  $rec peut être obtenu avec le processeur
    Sablotron XSLT comme cela :
   
<?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;
?>