(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)
yaz_scan — Prépare un scan YAZ
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 />";
}
}
?>