Start · Sprachen · PHP · Referenz · yaz_get_option

yaz_get_option

Funktion

Gibt den Wert einer bestimmten Verbindungsoption einer YAZ-Verbindung zurück.

seit PHP 4.0.1 Kategorie: misc

Signatur

yaz_get_option(resource $id, string $name): string

Beschreibung

yaz_get_option() liest eine benannte Verbindungsoption aus einer aktiven YAZ-Verbindungsressource aus und gibt deren aktuellen Wert als Zeichenkette zurück. YAZ ist eine PHP-Erweiterung zur Kommunikation mit Z39.50-Servern, die häufig in Bibliothekssystemen und Informationsdiensten eingesetzt werden.

Typische Options-Namen sind beispielsweise implementationName, implementationVersion oder targetImplementationId, die Informationen über den verbundenen Z39.50-Server liefern. Die verfügbaren Optionen hängen dabei vom jeweiligen Server und der verwendeten YAZ-Version ab.

Die Funktion ist nützlich, wenn man nach dem Verbindungsaufbau mit yaz_connect() und dem Senden einer Suchanfrage Metainformationen über die Gegenstelle abfragen möchte, ohne dafür eigene Protokoll-Analysen durchführen zu müssen.

Parameter

Name Typ Default Beschreibung
$id Pflicht resource Eine YAZ-Verbindungsressource, die zuvor mit yaz_connect() erzeugt wurde.
$name Pflicht string Der Name der abzufragenden Verbindungsoption, z. B. implementationName, implementationVersion oder targetImplementationId.

Rückgabewert

Typ
string
Beschreibung
Gibt den Wert der angegebenen Verbindungsoption als Zeichenkette zurück. Ist die Option nicht gesetzt oder unbekannt, wird eine leere Zeichenkette zurückgegeben.

Beispiele

Implementierungsname eines Z39.50-Servers auslesen

<?php
// Verbindung zu einem Z39.50-Server herstellen
$id = yaz_connect('z3950.example.com/VOYAGER');

if ($id) {
    // Suche initiieren und warten
    yaz_search($id, 'rpn', '@attr 1=4 "Bibliothek"');
    yaz_wait();

    // Implementierungsname des Servers abfragen
    $implName = yaz_get_option($id, 'implementationName');
    $implVersion = yaz_get_option($id, 'implementationVersion');

    echo "Server-Implementierung: " . htmlspecialchars($implName) . "\n";
    echo "Version: " . htmlspecialchars($implVersion) . "\n";
} else {
    echo "Verbindung fehlgeschlagen.\n";
}
?>
Server-Implementierung: Voyager Version: 9.0

Mehrere Verbindungsoptionen ausgeben

<?php
$id = yaz_connect('z3950.example.org/Default');

if ($id) {
    yaz_wait();

    $options = [
        'implementationName',
        'implementationVersion',
        'targetImplementationId',
    ];

    foreach ($options as $opt) {
        $value = yaz_get_option($id, $opt);
        echo $opt . ': ' . (empty($value) ? '(nicht verfügbar)' : htmlspecialchars($value)) . "\n";
    }
} else {
    echo "Keine Verbindung möglich.\n";
}
?>
implementationName: ExlibrisYaz implementationVersion: 3.0.47 targetImplementationId: (nicht verfügbar)

// Wichtig · Fallstricke

Deprecation-Hinweis: Die YAZ-Erweiterung (ext/yaz) gilt als veraltet und wird in aktuellen PHP-Versionen nicht mehr aktiv weiterentwickelt. Sie ist als PECL-Paket verfügbar, sollte aber für neue Projekte gemieden werden. Erwäge stattdessen eine alternative Z39.50-Bibliothek oder einen Web-Service-Zugang.

Die Funktion setzt voraus, dass die YAZ-PHP-Erweiterung korrekt installiert und aktiviert ist. Ohne diese Erweiterung ist yaz_get_option() nicht verfügbar und führt zu einem fatalen Fehler.