mirror of
https://github.com/php/doc-ru.git
synced 2026-03-26 16:52:12 +01:00
96 lines
3.1 KiB
XML
96 lines
3.1 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: af4410a7e15898c3dbe83d6ea38246745ed9c6fb Maintainer: rjhdby Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<chapter xml:id="yaz.examples" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
&reftitle.examples;
|
||
<para>
|
||
PHP/YAZ хранит список соединений с адресатами (Z-Ассоциации).
|
||
Ресурс же предоставляет соединение с адресатом.
|
||
</para>
|
||
<para>
|
||
Пример ниже демонстрирует особенность параллельного поиска по API.
|
||
Если аргументы не переданы, выводится форма запроса; иначе (переданы аргументы)
|
||
происходит поиск по адресам, указанным в массиве <literal>host</literal>.
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>Параллельный поиск с помощью Yaz</title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?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" />
|
||
Тест GILS
|
||
<input type="checkbox"
|
||
name="host[]" value="localhost:9999/Default" />
|
||
Локальный тест
|
||
<input type="checkbox" checked="checked"
|
||
name="host[]" value="z3950.loc.gov:7090/voyager" />
|
||
Библиотека Конгресса
|
||
<br />
|
||
Запрос RPN:
|
||
<input type="text" size="30" name="query" />
|
||
<input type="submit" name="action" value="Поиск" />
|
||
</form>
|
||
';
|
||
} else {
|
||
echo 'Вы искали ' . 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 '<hr />' . $host[$i] . ':';
|
||
$error = yaz_error($id[$i]);
|
||
if (!empty($error)) {
|
||
echo "Ошибка: $error";
|
||
} else {
|
||
$hits = yaz_hits($id[$i]);
|
||
echo "Всего результатов $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>';
|
||
}
|
||
}
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
</chapter>
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|