Signatur
Beschreibung
yaz_set_option ermöglicht es, Konfigurationsoptionen für eine bestehende YAZ-Verbindung zu setzen. YAZ ist eine Bibliothek für das Z39.50-Protokoll, das hauptsächlich im Bibliothekswesen für den Zugriff auf Bibliothekskataloge und Datenbanken verwendet wird.
Die Funktion wird auf eine bestehende Verbindungsressource angewendet, die zuvor mit yaz_connect erstellt wurde. Mit ihr lassen sich Verbindungsparameter wie Zeichenkodierung, Datenbankname oder andere protokollspezifische Optionen zur Laufzeit anpassen.
Typische Einsatzgebiete sind die Anpassung der Verbindung an spezifische Server-Anforderungen, das Setzen von Authentifizierungsdaten oder die Steuerung des Verhaltens bei der Ergebnisverarbeitung. Die verfügbaren Optionen hängen von der verwendeten YAZ-Version ab.
- charset – Zeichensatz für die Verbindung (z. B.
UTF-8) - preferredMessageSize – Bevorzugte Nachrichtengröße für den Datenaustausch
- maximumRecordSize – Maximale Größe eines einzelnen Datensatzes
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $id Pflicht | resource | Die YAZ-Verbindungsressource, die zuvor mit yaz_connect erstellt wurde. |
|
| $name Pflicht | string | Der Name der Option, die gesetzt werden soll. Beispiele: charset, preferredMessageSize, maximumRecordSize. |
|
| $value Pflicht | string | Der Wert, der der Option zugewiesen werden soll. |
Rückgabewert
Beispiele
Zeichensatz für eine YAZ-Verbindung setzen
<?php
// Verbindung zu einem Z39.50-Server herstellen
$id = yaz_connect('z3950.example.com/MARC');
if ($id) {
// Zeichensatz auf UTF-8 setzen
yaz_set_option($id, 'charset', 'UTF-8');
// Suchanfrage stellen
yaz_search($id, 'rpn', '@attr 1=4 "PHP"');
// Verbindungen warten lassen
yaz_wait();
$error = yaz_error($id);
if (!$error) {
$hits = yaz_hits($id);
echo "Treffer gefunden: " . $hits . PHP_EOL;
} else {
echo "Fehler: " . $error . PHP_EOL;
}
yaz_close($id);
} else {
echo "Verbindung fehlgeschlagen." . PHP_EOL;
}
?>
Maximale Datensatzgröße konfigurieren
<?php
$id = yaz_connect('z3950.bibliothek.example.de/Katalog');
if ($id) {
// Maximale Datensatzgröße auf 1 MB setzen
yaz_set_option($id, 'maximumRecordSize', '1048576');
// Bevorzugte Nachrichtengröße auf 512 KB setzen
yaz_set_option($id, 'preferredMessageSize', '524288');
echo "Verbindungsoptionen gesetzt." . PHP_EOL;
yaz_close($id);
}
?>
// Wichtig · Fallstricke
Hinweis zur Verfügbarkeit: Die YAZ-Erweiterung (ext/yaz) ist seit PHP 7.0 nicht mehr im offiziellen PHP-Core enthalten und wird als veraltet betrachtet. Sie steht nur noch über PECL zur Verfügung und wird kaum noch aktiv gepflegt. Für neue Projekte sollten alternative Z39.50-Bibliotheken oder REST-APIs für Bibliothekskataloge in Betracht gezogen werden.
Verbindungsreihenfolge: yaz_set_option muss nach yaz_connect, aber möglichst vor dem eigentlichen Verbindungsaufbau (d. h. vor yaz_wait) aufgerufen werden, damit die Optionen wirksam werden.
Die verfügbaren Optionen und deren genaues Verhalten sind von der installierten Version der YAZ-Bibliothek abhängig. Konsultiere die YAZ-Dokumentation unter indexdata.com für eine vollständige Liste der unterstützten Optionen.