Start · Sprachen · PHP · Referenz · yaz_set_option

yaz_set_option

Funktion

Setzt eine oder mehrere Optionen für eine YAZ-Verbindung (Z39.50-Protokoll).

seit PHP 4.0.1 Kategorie: misc

Signatur

yaz_set_option(resource $id, string $name, string $value): void

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

Typ
void
Beschreibung
Die Funktion gibt keinen Wert zurück.

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;
}
?>
Treffer gefunden: 42

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);
}
?>
Verbindungsoptionen gesetzt.

// 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.