(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)
yaz_scan — Prepara para un escaneo YAZ
$id
, string $type
, string $startterm
[, array $flags
] )Esta función prepara para una solicitud "Z39.50 Scan Request" en la conexión YAZ especificada.
Para transferir realmente la "Scan Request" del servidor y recibir la "Scan Response", debe llamarse yaz_wait(). Después de la finalización de la llamada a yaz_wait(), llamar a yaz_error() y yaz_scan_result() para gestionar la respuesta.
id
El recurso de conexión devuelto por yaz_connect().
type
Actualmente sólo está soportado el tipo rpn .
startterm
Punto de partida del escaneo.
La forma en la que el punto de partida es especificado, viene dado por el parámetro
type
.
La sintaxis de este parámetro es parecido al de la consulta RPN tal y como se describe en yaz_search(). Consiste en cero o más especificaciones del operador @attr, seguido de exactamente un token.
flags
Este parámetro opcional describe información adicional para controlar el comportamiento de la solicitud de escaneo. Tres índices se leen actualmente del array de marcas: number (número de términos solicitados), position (posición preferida del término) y stepSize (tamaño preferido del paso).
No devuelve ningún valor.
Ejemplo #1 función PHP que escanea títulos
<?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 "Error de escaneo. Error: " . yaz_error($id) . "<br />";
}
}
?>