本文整理汇总了PHP中yaz_search函数的典型用法代码示例。如果您正苦于以下问题:PHP yaz_search函数的具体用法?PHP yaz_search怎么用?PHP yaz_search使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了yaz_search函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: search
static function search($query, $start = 1, $num = 10)
{
yaz_search(self::$connection, 'rpn', $query);
yaz_range(self::$connection, $start, $num);
yaz_wait();
self::is_error();
}
示例2: htmlspecialchars
<input type="checkbox" checked="checked"
name="host[]" value="z3950.loc.gov:7090/voyager" />
Library of Congress
<br />
RPN Query:
<input type="text" size="30" name="query" placeholder="ex: @attr 1=4 \\"mysql%\\" " />
<input type="submit" name="action" value="Search" />
</form>
';
} else {
echo 'You searched for ' . 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: {$error}";
} else {
$hits = yaz_hits($id[$i]);
echo "Result Count {$hits}";
}
echo '<dl>';
for ($p = 1; $p <= 10; $p++) {
$rec = yaz_record($id[$i], $p, "string");
if (empty($rec)) {
示例3: fetchYazInfos
function fetchYazInfos($book)
{
global $booklibrary_configuration;
if (!extension_loaded('yaz')) {
echo "<script> alert('Sorry, \\'yaz.so\\' isn\\'t loaded....'); window.history.go(-1);</script>\n";
exit;
}
$param_ws = mosBooklibraryWS::getWsParamById($book->informationFrom) - 1;
$hosts = mosBooklibraryWS::getWSArray();
$str_conect = trim($hosts[$param_ws][3]) . ":" . trim($hosts[$param_ws][4]) . "/" . trim($hosts[$param_ws][5]);
//$str_conect ="z3950.bibsys.no:2100";// "140.147.249.38:7090/voyager";
//$str_conect = "troy.lib.sfu.ca:210/innopac";
//echo $str_conect;
$id = yaz_connect($str_conect);
yaz_syntax($id, $hosts[$param_ws][6]);
$query = '@attr 1=7 ' . $book->isbn;
yaz_search($id, 'rpn', $query);
yaz_wait();
$error = yaz_error($id);
if (!empty($error)) {
echo "<script> alert('ERROR:" . addslashes($error) . "'); window.history.go(-1);</script>\n";
exit;
}
$rec = yaz_record($id, 1, "array");
$error = yaz_error($id);
if (yaz_hits($id) == 0) {
echo "<script> alert('On this ISBN(" . addslashes($book->isbn) . ") of the not found records'); window.history.go(-1);</script>\n";
yaz_close($id);
exit;
} elseif (!empty($error)) {
echo "<script> alert('ERROR:" . addslashes($error) . "'); window.history.go(-1);</script>\n";
yaz_close($id);
exit;
}
yaz_close($id);
$book->comment = "";
$book->title = "";
$book->authors = "";
$book->manufacturer = "";
$book->release_Date = "";
$book->URL = "";
foreach ($rec as $i => $value) {
$s = explode(")(", $rec[$i][0]);
if (isset($s[2])) {
switch (substr($s[0], 3, strlen($s[0]))) {
case '245':
$book->comment .= $rec[$i][1];
if (substr($s[2], 2, strlen($s[2]) - 3) == 'a') {
$book->title .= $rec[$i][1];
}
break;
case '100':
$book->authors .= $rec[$i][1];
break;
case '260':
$book->manufacturer .= $rec[$i][1];
if (substr($s[2], 2, strlen($s[2]) - 3) == 'c') {
$book->release_Date .= $rec[$i][1];
}
break;
case '856':
$book->URL .= $rec[$i][1];
break;
}
}
}
return $book;
}
示例4: yazCclArray
function yazCclArray($ccl)
{
global $config;
$system = $config['lib']['system'];
// Create an array to hold settings for the different systems
$zopts = array();
$zopts['aleph'] = array('syntax' => '', 'yaz_con_opts' => array('piggyback' => true));
$zopts['bibliofil'] = array('syntax' => 'normarc', 'yaz_con_opts' => array('piggyback' => true));
$zopts['bibsys'] = array('syntax' => '', 'yaz_con_opts' => array('piggyback' => false));
$zopts['koha'] = array('syntax' => '', 'yaz_con_opts' => array('piggyback' => true));
$zopts['mikromarc'] = array('syntax' => 'normarc', 'yaz_con_opts' => array('piggyback' => true));
/*
The Glitre project has not been able to find sample servers fot these
systems, even after asking the vendors if any exist:
$zopts['reindex'] = array(
'syntax' => '',
'yaz_con_opts' => array(
'piggyback' => false,
),
);
$zopts['tidemann'] = array(
'syntax' => '',
'yaz_con_opts' => array(
'piggyback' => false,
),
);
*/
$hits = 0;
$type = 'xml';
$id = yaz_connect($config['lib']['z3950'], $zopts[$system]['yaz_con_opts']);
yaz_element($id, "F");
yaz_syntax($id, $zopts[$system]['syntax']);
yaz_range($id, 1, 1);
yaz_ccl_conf($id, get_zconfig());
$cclresult = array();
if (!yaz_ccl_parse($id, $ccl, $cclresult)) {
echo 'Error yaz_ccl_parse: ' . $cclresult["errorstring"];
} else {
// Norwegian Z39.50 have no or limited support for yaz_sort
// See http://wiki.biblab.no/index.php/Z39.50%2C_SRU_og_sortering for details
// yaz_sort($id, "1=31 di");
$rpn = $cclresult["rpn"];
yaz_search($id, "rpn", utf8_decode($rpn));
}
yaz_wait();
$error = yaz_error($id);
if (!empty($error)) {
$yaz_errno = yaz_errno($id);
// echo "<p>Error yaz_wait: $error ($yaz_errno)</p>";
$error = array('error' => true, 'stage' => 'yaz_wait', 'desc' => $error, 'num' => $yaz_errno);
return $error;
} else {
$hits = yaz_hits($id);
}
$data = array();
for ($p = 1; $p <= $hits; $p++) {
$rec = yaz_record($id, $p, $type);
if (empty($rec)) {
continue;
}
$data[] = $rec;
// If a max number of records is set for this library, respect it - otherwise use the default.
$records_max = $config['lib']['records_max'] ? $config['lib']['records_max'] : $config['records_max'];
if ($p == $records_max) {
break;
}
}
$ret = array("hits" => $hits, "result" => $data);
return $ret;
}
示例5: switch
switch ($_GET['field']) {
case 'ti':
$query = '@or @and @attr 1=4 ' . $keywords . ' @and @attr 1=5 ' . $keywords;
break;
case 'au':
$query = '@attr 1=1 @and ' . $keywords;
break;
default:
$query = '@or @attr 1=7 ' . $keywords . ' @attr 1=8 ' . $keywords;
break;
}
for ($h = 0; $h < $num_hosts; $h++) {
$id[] = yaz_connect($zserver[$h]);
yaz_syntax($id[$h], 'usmarc');
yaz_range($id[$h], 1, $sysconf['z3950_max_result']);
yaz_search($id[$h], 'rpn', $query);
}
yaz_wait();
// preparing to buffer MARC XML result
$errors = array();
$hits = 0;
ob_start();
echo '<?xml version="1.0" standalone="yes"?>' . "\n";
echo '<collection xmlns="http://www.loc.gov/MARC21/slim">' . "\n";
for ($h = 0; $h < $num_hosts; $h++) {
$error = yaz_error($id[$h]);
if (!empty($error)) {
$errors[] = $error;
} else {
// number of results
$hits = yaz_hits($id[$h]);
示例6: yaz_connect
$aUser = $postVars[hosts][$ptr][user];
$aPw = $postVars[hosts][$ptr][pw];
$connOK = yaz_connect($aHost, array("user" => $aUser, "password" => $aPw));
if (!$connOK) {
echo 'yaz setup not successful! <br />';
trigger_error($lookLoc->getText("lookup_yaz_setup_failed") . $postVars[hosts][$ptr][name] . "<br />", E_USER_ERROR);
} else {
//echo 'yaz setup successful! <br />';
$id[$ptr] = $connOK;
$db = $postVars[hosts][$ptr][db];
//echo "specifying db: $db<br />";
yaz_database($id[$ptr], $db);
yaz_syntax($id[$ptr], $syntax);
yaz_element($id[$ptr], "F");
//echo "sending: $qry <br />";
if (!yaz_search($id[$ptr], $srchType, $qry)) {
trigger_error($lookLoc->getText("lookup_badQuery") . "<br />", E_USER_NOTICE);
}
}
}
$waitOpts = array("timeout" => $postVars[timeout]);
//echo "<br /> waiting $waitOpts[timeout] seconds for responses. <br />";
//yaz_wait($waitOpts);
yaz_wait();
$ttlHits = 0;
for ($i = 0; $i < $numHosts; $i++) {
## did we make it?
// $ptr = ($useHost == -1)?$i:$useHost;
$ptr = $i;
$error = yaz_error($id[$ptr]);
if (!empty($error)) {
示例7: yaz_connect
// save the $id to be able later to retrieve the records from the servers
//////////////////////////////////////////////////////////////////////////////////
//$stato[$bib_id] = 1;
$auth = $auth_user . $auth_pass;
if ($auth != "") {
$id = yaz_connect("{$url}:{$port}/{$base}", array("user" => $auth_user, "password" => $auth_pass, "piggyback" => false)) or affiche_jsscript($msg['z3950_echec_cnx'], "z3950_failed", $bib_id);
} else {
$id = yaz_connect("{$url}:{$port}/{$base}", array("piggyback" => false)) or affiche_jsscript($msg['z3950_echec_cnx'], "z3950_failed", $bib_id);
}
$map[$bib_id] = $id;
yaz_element($id, "F");
$etrange_limite = $limite_notices;
yaz_range($id, 1, $etrange_limite);
yaz_syntax($id, strtolower($format));
echo $term;
yaz_search($id, "rpn", $term);
}
}
///////////////////////////////////////////////////////////////////////////
// Fase 2: all the possible connections are ready now start the researches
//////////////////////////////////////////////////////////////////////////
//Correction mystérieuse : visiblement la fonction yaz_search impacte la variable global $limite... modifié en $limite_notices
affiche_jsscript($msg['z3950_zmsg_wait'], "", $mioframe);
$options = array("timeout" => 45);
$t1 = time();
//Override le timeout du serveur mysql, pour être sûr que le socket dure assez longtemps pour aller jusqu'aux ajouts des résultats dans la base.
$sql = "set wait_timeout = 120";
pmb_mysql_query($sql);
yaz_wait($options);
$dt = time() - $t1;
$msgz = str_replace('!!time!!', $dt, $msg['z3950_zmsg_endw']);
示例8: htmlspecialchars
Bibhit
<input type="checkbox" checked="1" name="host[]" value="blpcz.bl.uk:21021/BLPC-ALL">
British Library
<br>
RPN Query:
<input type="text" size="30" name="term">
<input type="submit" name="action" value="Search">
';
}
else
{
echo 'You searced for ' . 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 "Error: $error";
} else {
$hits = yaz_hits($id[$i]);
echo "Result Count $hits";
}
echo '<dl>';
for ($p = 1; $p <= 10; $p++)
{
示例9: getExtendedInformation
/**
* Fetch details about a specific item from WorldCat data service
*
* @param array $pa_settings Plugin settings values
* @param string $ps_url The URL originally returned by the data service uniquely identifying the item
* @param array $pa_options Options include:
* APIKey = WorldCat API key to use. [Default is the key configured in worldcat_api_key in app.conf]
* user = Worldcat Z39.50 login name. [Default is the username configured in worldcat_z39.50_user in app.conf]
* password = WorldCAt Z39.50 password. [Default is the password configured in worldcat_z39.50_password in app.conf]
*
* @return array An array of data from the data server defining the item.
*/
public function getExtendedInformation($pa_settings, $ps_url, $pa_options = null)
{
$va_config = $this->_getConfiguration($pa_settings, $pa_options);
$va_tmp = explode("/", $ps_url);
$vn_worldcat_id = array_pop($va_tmp);
$va_data = array();
if ($va_config['user'] && $va_config['z39IsAvailable']) {
$r_conn = yaz_connect(WLPlugInformationServiceWorldCat::$s_worldcat_z3950_host, array('user' => $va_config['user'], 'password' => $va_config['password']));
yaz_syntax($r_conn, "usmarc");
yaz_range($r_conn, $vn_start + 1, $vn_start + $vn_count);
yaz_search($r_conn, "rpn", '@attr 1=12 @attr 4=2 "' . str_replace('"', '', $vn_worldcat_id) . '"');
yaz_wait();
$vs_data = yaz_record($r_conn, 1, "xml; charset=marc-8,utf-8");
} else {
$o_client = new Client(WLPlugInformationServiceWorldCat::$s_worldcat_detail_url);
try {
if (!$va_config['curlIsAvailable']) {
throw new Exception(_t('CURL is required for WorldCat web API usage but not available on this server'));
}
if (!$va_config['APIKey']) {
if (!$va_config['z39IsAvailable']) {
throw new Exception(_t('Neither Z39.50 client is installed nor is WorldCat web API key configured'));
} else {
throw new Exception(_t('WorldCat web API key is not configured'));
}
}
// Create a request
$o_request = $o_client->get("{$vn_worldcat_id}?wskey=" . $va_config['APIKey']);
// Send the request and get the response
$o_response = $o_request->send();
$vs_data = (string) $o_response->getBody();
} catch (Exception $e) {
return array('display' => _t('WorldCat data could not be loaded: %1', $e->getMessage()));
}
}
try {
if (!$vs_data) {
throw new Exception("No data returned");
}
$xml = new DOMDocument();
$xml->loadXML($vs_data);
} catch (Exception $e) {
return array('display' => _t('WorldCat data could not be parsed: %1', $e->getMessage()));
}
switch ($pa_settings['detailStyle']) {
case 'labels':
default:
$vs_template = file_get_contents(__CA_LIB_DIR__ . "/core/Plugins/InformationService/WorldCat/MARC21slim2English.xml");
break;
case 'codes':
$vs_template = file_get_contents(__CA_LIB_DIR__ . "/core/Plugins/InformationService/WorldCat/MARC21slim2HTML.xml");
break;
case 'template':
$vs_template = $pa_settings['detailXSLTemplate'];
break;
}
try {
$xsl = new DOMDocument();
$xsl->loadXML($vs_template);
} catch (Exception $e) {
return array('display' => _t('WorldCat detail display template could not be parsed: %1', $e->getMessage()));
}
try {
$proc = new XSLTProcessor();
$proc->importStyleSheet($xsl);
$vs_output = $proc->transformToXML($xml);
$va_data = array('display' => $vs_output);
} catch (Exception $e) {
return array('display' => _t('WorldCat detail display template could not be created: %1', $e->getMessage()));
}
return $va_data;
}
示例10: yaz_connect
<?php
$z = yaz_connect("localhost:9999");
yaz_range($z, 1, 2);
yaz_search($z, "rpn", "computer");
yaz_wait();
$error = yaz_error($z);
if (!empty($error)) {
echo "Error: {$error}\n";
} else {
$hits = yaz_hits($z);
echo "Result count {$hits}\n";
for ($p = 1; $p <= 2; $p++) {
$rec = yaz_record($z, $p, "string");
if (empty($rec)) {
break;
}
echo "----- {$p} -----\n{$rec}";
}
}
示例11: do_search_and_show_hits
function do_search_and_show_hits()
{
output_header("Search Results");
echo "<br>";
if (empty($_GET['start'])) {
$start = 1;
} else {
$start = $_GET['start'];
}
if (!empty($_GET['fq'])) {
$fullquery = unserialize(base64_decode($_GET['fq']));
} else {
$fullquery = query_format();
}
global $external_catalog_locator;
$id = yaz_connect($external_catalog_locator);
yaz_syntax($id, "usmarc");
yaz_element($id, "F");
yaz_search($id, "rpn", trim($fullquery));
$extra_options = array("timeout" => 60);
yaz_wait($extra_options);
$errorMsg = yaz_error($id);
if (!empty($errorMsg)) {
echo "<center>";
echo _("The following error has occurred:");
echo "<br><br>";
echo "<b><i>{$errorMsg}</i></b>";
echo "<p>";
$url = "editproject.php?action=createnew";
echo sprintf(_("Please try again. If the problem recurs, please create your project manually by following this <a href='%s'>link</a>."), $url);
echo "</center>";
exit;
}
echo "<center>";
if (yaz_hits($id) == 0) {
echo "<b>";
echo _("There were no results returned.");
echo "</b>";
echo "<br>";
echo _("Please search again or click 'No Matches' to create the project manually.");
echo "<br>";
} else {
echo "<b>";
echo sprintf(_("%d results returned. Note that some non-book results may not be displayed."), yaz_hits($id));
echo "<br>";
echo _("Please pick a result from below:");
echo "</b>";
}
echo "</center>";
echo "<br><form method='post' action='editproject.php'>";
echo "<input type='hidden' name='action' value='create_from_marc_record'>";
echo "<table border='0 width='100%' cellpadding='0' cellspacing='0'>";
// -----------------------------------------------------
$hits_per_page = 20;
// Perhaps later this can be a PM preference or an option on the form.
$i = 1;
while ($start <= yaz_hits($id) && $i <= $hits_per_page) {
$rec = yaz_record($id, $start, "array");
//if it's not a book don't display it. we might want to uncomment in the future if there are too many records being returned - if (substr(yaz_record($id, $start, "raw"), 6, 1) != "a") { $start++; continue; }
$marc_record = new MARCRecord();
$marc_record->load_yaz_array($rec);
if ($i % 2 == 1) {
echo "<tr>";
}
echo "<td width='5%' align='center' valign='top'>";
echo "<input type='radio' name='rec' value='" . base64_encode(serialize($rec)) . "'>";
echo "</td>";
echo "<td width='45%' align='left' valign='top'>";
echo "<table border='0' width='100%' cellpadding='0' cellspacing='0'>";
foreach (array(array('label' => _("Title"), 'value' => $marc_record->title), array('label' => _("Author"), 'value' => $marc_record->author), array('label' => _("Publisher"), 'value' => $marc_record->publisher), array('label' => _("Language"), 'value' => $marc_record->language), array('label' => _("LCCN"), 'value' => $marc_record->lccn), array('label' => _("ISBN"), 'value' => $marc_record->isbn)) as $couple) {
$label = $couple['label'];
$value = $couple['value'];
echo "<tr>";
echo "<td width='20%' align='left' valign='top'><b>{$label}</b>:</td>";
echo "<td align='left' valign='top'>{$value}</td>";
echo "</tr>\n";
}
echo "</table><p></td>";
if ($i % 2 != 1) {
echo "</tr>\n";
}
$i++;
$start++;
}
if ($i % 2 != 1) {
echo "</tr>\n";
}
// -----------------------------------------------------
$encoded_fullquery = base64_encode(serialize($fullquery));
echo "<tr>";
echo "<td colspan='2' width='50%' align='left' valign='top'>";
if (isset($_GET['start']) && $_GET['start'] - $hits_per_page > 0) {
$url = "external_catalog_search.php?action=do_search_and_show_hits&start=" . ($_GET['start'] - $hits_per_page) . "&fq={$encoded_fullquery}";
echo "<a href='{$url}'>Previous</a>";
} else {
echo " ";
}
echo "</td>";
echo "<td colspan='2' width='50%' align='right' valign='top'>";
if ($start + $hits_per_page <= yaz_hits($id)) {
//.........这里部分代码省略.........
示例12: doZSearch
function doZSearch($zid, $rpn, $start, $number)
{
yaz_range($zid, (int) $start, (int) $number);
yaz_syntax($zid, $this->z_syntax);
if ($this->z_sort) {
yaz_sort($zid, $this->z_sort);
}
yaz_element($zid, 'F');
yaz_search($zid, "rpn", $rpn);
yaz_wait($options = array('timeout' => $this->z_timeout));
if (yaz_errno($zid)) {
$error_msg = yaz_error($zid);
if ($error_info = yaz_addinfo($zid)) {
$error_msg .= ' - ' . $error_info;
}
$this->addError("error", sprintf(_("Fehler bei der Suche: %s"), $error_msg));
return false;
} else {
return yaz_hits($zid);
}
}
示例13: yazCclArray
function yazCclArray($ccl, $syntax = 'marc21', $host = 'default')
{
global $config;
if ($host == 'default') {
$host = $config['libraries'][$_GET['bib']]['z3950'];
}
$zconfig = get_zconfig();
$hits = 0;
$type = 'xml';
$id = yaz_connect($host);
yaz_element($id, "F");
yaz_syntax($id, $syntax);
yaz_range($id, 1, 1);
yaz_ccl_conf($id, $zconfig);
$cclresult = array();
if (!yaz_ccl_parse($id, $ccl, $cclresult)) {
echo 'Error: ' . $cclresult["errorstring"];
} else {
// NB! Ser ikke ut som Z39.50 fra Bibliofil støtter "sort"
// Se nederst her: http://www.bibsyst.no/produkter/bibliofil/z3950.php
// PHP/YAZ-funksjonen yaz-sort ville kunne dratt nytte av dette:
// http://no.php.net/manual/en/function.yaz-sort.php
// Sort Flags
// a Sort ascending
// d Sort descending
// i Case insensitive sorting
// s Case sensitive sorting
// Bib1-attributter man kunne sortert på:
// http://www.bibsyst.no/produkter/bibliofil/z/carl.xml
// yaz_sort($id, "1=31 di");
$rpn = $cclresult["rpn"];
yaz_search($id, "rpn", utf8_decode($rpn));
}
yaz_wait();
$error = yaz_error($id);
if (!empty($error)) {
echo "Error yazCclArray: {$error}";
} else {
$hits = yaz_hits($id);
}
$data = array();
for ($p = 1; $p <= $hits; $p++) {
$rec = yaz_record($id, $p, $type);
if (empty($rec)) {
continue;
}
$data[] = $rec;
if ($p == $config['maks_poster']) {
break;
}
}
$ret = array("hits" => $hits, "result" => $data);
return $ret;
}
示例14: array
}
if ($fullquery != "" && $expr_isbn != "") {
$fullquery = "@or " . $expr_isbn . " " . $fullquery;
} else {
if ($expr_isbn != "") {
$fullquery = $expr_isbn;
}
}
// $options=array("proxy"=>"localhots");
$options = array();
for ($reintentar = 0; $reintentar <= $intentos; $reintentar++) {
for ($i = 0; $i < $num_hosts; $i++) {
$id = yaz_connect($host[$i], $options);
$ids[$i] = $id;
if ($id <= 0) {
continue;
}
if (!yaz_search($id, "rpn", $fullquery)) {
echo $msgstr["expr_err"] . '<br>';
$reintentar = 999;
break;
}
if ($number > 1) {
yaz_element($id, $element);
} else {
yaz_element($id, "F");
}
yaz_syntax($id, $syntax);
yaz_range($id, $start, $number);
}
yaz_wait();
示例15: preg_replace
if (isset($_REQUEST['bib_id'])) {
// Simple sanitizing of input
$bib_id = preg_replace("/[^a-zA-Z0-9 ]+/", "", $_REQUEST['bib_id']);
header('Content-Type: text/xml');
header('Content-Disposition: inline; filename="' . $bib_id . '.xml";');
$bib_id = '@attr 1=12 ' . $bib_id;
// The backend server can be unreliable, so we'll try connecting multiple
// times if we get an erroneous response.
$xml_string;
$maxTries = 5;
for ($try = 1; $try <= $maxTries; $try++) {
$id = yaz_connect($host);
yaz_syntax($id, "usmarc");
yaz_range($id, 1, 1);
$host_options = array("timeout" => "10");
yaz_search($id, "rpn", $bib_id);
yaz_wait($host_options);
$error = yaz_error($id);
if (empty($error)) {
// Successful Z39.50 Connection
$rec = yaz_record($id, 1, 'xml');
if (!empty($rec)) {
// Successul record retrieval
http_response_code(200);
$doc = new DOMDocument();
$doc->loadXML($rec);
$doc->formatOutput = true;
$xml_string = $doc->saveXML();
break;
} else {
// No record