yaz_scan

(PHP 4 >= 4.0.5, PHP 5)

yaz_scan -- Prépare un scan

Description

int yaz_scan ( resource id, string type, string startterm [, array flags] )

yaz_scan() prépare une requête "Z39.50 Scan Request". id spécifie l'hôte cible. Le point de départ est donné avec startterm. La forme de spécification du point de départ est donné par type. Actuellement, le type rpn est supporté. Le paramètre optionnel flags donne des informations supplémentaires pour contrôler le comportement de la requête de scan. Actuellement, trois index sont lus dans ce paramètre : number (nombre de termes requis), position (position préférée du terme) et stepSize (taille du pas préférée). Pour réellement envoyer la requête de recherche à l'hôte, et recevoir la réponse, yaz_wait() doit être appelée. A la fin de yaz_wait(), yaz_error() et yaz_scan_result() auront les résultats.

La syntaxe de startterm est similaire aux requêtes RPN, décrites dans yaz_search(). startterm est constitué de zéro ou plus spécifications, avec les opérateurs @attr, suivi par exactement un token.

Exemple 1. Fonction PHP qui scanne les titres sur un serveur YAZ

<?php
function scan_titles($id, $startterm)
{
  
yaz_scan($id, "rpn", "@attr 1=4 " . $startterm);
  
yaz_wait();
  
$errno = yaz_errno($id);
  if (
$errno == 0) {
    
$ar = yaz_scan_result($id, &$options);
    echo
'Scan ok; ';
    while (list(
$key, $val) = each($options)) {
      echo
"$key = $val &nbsp;";
    }
    echo
'<br /><table>';
    while (list(
$key, list($k, $term, $tcount)) = each($ar)) {
      if (empty(
$k)) continue;
      echo
"<tr><td>$term</td><td>$tcount</td></tr>";
    }
    echo
'</table>';
  } else {
    echo
"Erreur de Scan. Erreur: " . yaz_error($id) . "<br />";
  }
}
?>