Exemples

PHP/YAZ garde les traces des connexions avec les cibles (Z-Associations). Une ressource représente une connexion à une cible.

Le script ci-dessous montre la fonctionnalité de recherche parallèle de l'API. Lorsqu'appelée sans argument, elle affiche une requête ; sinon, elle cherche la cible donnée dans le tableau host.

Exemple #1 Recherche parallèle en utilisant Yaz

<?php
$host=$_REQUEST[host];
$query=$_REQUEST[query];
$num_hosts = count($host);
if (empty($query) || count($host) == 0) {
	echo '<form method="get">
	<input type="checkbox"
	name="host[]" value="bagel.indexdata.dk/gils" />
		test GILS
	<input type="checkbox"
	name="host[]" value="localhost:9999/Default" />
		test local
	<input type="checkbox" checked="checked"
	name="host[]" value="z3950.loc.gov:7090/voyager" />
		Library of Congress
	<br />
	Requête RPN:
	<input type="text" size="30" name="query" />
	<input type="submit" name="action" value="Search" />
	</form>
	';
} else {
	echo 'Votre recherche pour ' . htmlspecialchars($query) . '<br />';
	for ($i = 0; $i < $num_hosts; $i++) {
		$id[] = yaz_connect($host[$i]);
		yaz_syntax($id[$i], "usmarc");
		yaz_range($id[$i], 1, 10);
		yaz_search($id[$i], "rpn", $query);
	}
	yaz_wait();
	for ($i = 0; $i < $num_hosts; $i++) {
		echo '' . $host[$i] . ':';
		$error = yaz_error($id[$i]);
		if (!empty($error)) {
			echo "Erreur : $error";
		} else {
			$hits = yaz_hits($id[$i]);
			echo "Nombre de résultat(s) : $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 nl2br($rec);
			echo "</dd>";
		}
		echo '</dl>';
	}
}
?>

LoadingChargement en cours