(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)
yaz_scan — 准备扫描
此函数准备在指定的连接上执行 Z39.50 扫描请求。
要实际将扫描请求传输到服务器并接收扫描响应,必须调用 yaz_wait()。完成 yaz_wait() 调用后,yaz_error() 和 yaz_scan_result() 用于处理响应。
id
由 yaz_connect() 返回的连接资源。
type
目前仅支持 rpn
类型。
startterm
扫描的起始术语点。
指定起始术语的形式由参数 type
决定。
此参数的语法类似于 yaz_search() 中描述的 RPN 查询。它包含零个或多个 @attr
运算符规范,然后紧跟着一个标记。
flags
此可选参数指定用于控制扫描请求行为的附加信息。目前从 flags 数组中读取三个索引:number
(请求的术语数量)、position
(术语的首选位置)和 stepSize
(首选步长)。
不返回值。
示例 #1 扫描标题的 PHP 函数
<?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 "Scan failed. Error: " . yaz_error($id) . "<br />";
}
}
?>