(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)
yaz_scan — Prépare un scan YAZ
$id
, string $type
, string $startterm
[, array $flags
] )yaz_scan() prépare une requête "Z39.50 Scan Request" sur la connexion YAZ spécifiée.
Pour réellement transférer la requête "Scan Request" au serveur et recevoir le "Scan Response", la fonction yaz_wait() doit être appelée. Après la fin de yaz_wait(), appelez yaz_error() et yaz_scan_result() pour connaître la réponse.
id
La ressource de connexion retournée par yaz_connect().
type
Actuellement seulement le type rpn est supporté.
startterm
Point de départ du scan.
La forme dans laquelle le terme de départ est spécifié est donnée par
le paramètre type
.
La syntaxe de ce paramètre est similaire à la requête RPN comme décrite dans yaz_search(). Cela consiste à aucune ou plusieurs spécifications d'opérateur @attr, ensuite suivies par exactement une seule marque.
flags
Ce paramètre optionnel spécifie des informations supplémentaires pour contrôler le comportement de la requête de scan. Trois index sont actuellement lus à partir du tableau d'options : number (nombre de termes demandés), position (position préférée du terme) et stepSize (grandeur de pas préférée).
Aucune valeur n'est retournée.
Exemple #1 Fonction PHP qui analyse 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; ';
foreach ($options as $key => $val) {
echo "$key = $val ";
}
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 />";
}
}
?>