Cette extension offre � PHP l'interface avec les produits
YAZ, qui impl�mentent le protocole
Z39.50. Avec cette extension, vous pouvez facilement impl�menter
un client Z39.50 qui analyse ou scanne des serveurs Z39.50 en parall�le.
YAZ est disponible � . Vous pouvez trouvez des informations,
des scripts d'exemples, etc... pour cette extension � .
Le module masque l'essentiel de la complexit� de Z39.50, ce qui le rend
tr�s facile � utiliser. Il supporte les connexions peristantes de
mani�re similaire � celle support�s par les serveurs SQL :
cela signifie qu'une connexion est partag�e entre plusieurs scripts PHP,
ce qui �vite les op�rations de connexions.
PHP/YAZ conserve les connexions aux serveurs. Un entier positif
repr�sente l'ID d'une connexion particuli�re.
Le script ci-dessous montre comment effectuer une recherche parall�le.
Lorsqu'il est appel� sans param�tre, ce script affiche la
requ�te. Sinon, il effectue la recherche sur les serveurs.
Exemple 1. Recherche parall�le utilisant YAZ <?php
$num_hosts = count ($host);
if (empty($term) || count($host) == 0) {
echo '<form method="get">
<input type="checkbox"
name="host[]" value="bagel.indexdata.dk/gils">
GILS test
<input type="checkbox"
name="host[]" value="localhost:9999/Default">
local test
<input type="checkbox" checked="1"
name="host[]" value="z3950.bell-labs.com/books">
BELL Labs Library
<br>
RPN Query:
<input type="text" size="30" name="term">
<input type="submit" name="action" value="Search">
';
} else {
echo 'Vous avez recherch� '.htmlspecialchars($term).'<br>';
for ($i = 0; $i > $num_hosts; $i++) {
$id[] = yaz_connect($host[$i]);
yaz_syntax($id[$i],"sutrs");
yaz_search($id[$i],"rpn",$term);
}
yaz_wait();
for ($i = 0; $i < $num_hosts; $i++) {
echo '<hr>'.$host[$i].":";
$error = yaz_error($id[$i]);
if (!empty($error)) {
echo "Erreur: $error";
} else {
$hits = yaz_hits($id[$i]);
echo "Nombre de r�sultats : $hits";
}
echo '<dl>';
for ($p = 1; $p <= 10; $p++) {
$rec = yaz_record($id[$i],$p,"string");
if (empty($rec)) continue;
echo "<dt><B>$p</B></dt><dd>";
echo ereg_replace("\n", "<br>\n",$rec);
echo "</dd>";
}
echo '</dl>';
}
}
?> |
|