Start · Sprachen · PHP · Referenz · yaz_es_result

yaz_es_result

Funktion

Untersucht das Ergebnis eines Extended-Service-Aufrufs und gibt die Antwort-Informationen als assoziatives Array zurück.

seit PHP 4.0.1 Kategorie: misc

Signatur

yaz_es_result(resource $id): array

Beschreibung

yaz_es_result() wird nach einem yaz_wait()-Aufruf verwendet, um die Ergebnisse eines zuvor initiierten Extended-Service-Aufrufs (z. B. über yaz_es()) für eine bestimmte YAZ-Verbindung auszuwerten. Die Funktion gehört zur YAZ-Erweiterung, die das Z39.50-Protokoll für die Kommunikation mit bibliographischen Datenbanken implementiert.

Der Rückgabewert ist ein assoziatives Array, das Informationen über den Status und das Ergebnis des Extended-Service-Vorgangs enthält. Typische Schlüssel sind unter anderem targetReference (Referenz des Servers auf den Vorgang) sowie weitere serverspezifische Antwortfelder.

Der Aufruf ist sinnvoll, wenn nach der Nutzung von Extended Services (z. B. Item Order, Database Administration) geprüft werden soll, ob die Anfrage vom Z39.50-Server erfolgreich verarbeitet wurde. Der Aufruf sollte stets nach yaz_wait() erfolgen, da erst dann die Serverantwort vollständig vorliegt.

Hinweis: Die YAZ-Erweiterung (ext/yaz) wurde in PHP 7.0 als unbundled eingestuft und ist als PECL-Paket verfügbar. Sie wird in modernen PHP-Umgebungen selten eingesetzt.

Parameter

Name Typ Default Beschreibung
$id Pflicht resource Die YAZ-Verbindungsressource, die durch yaz_connect() zurückgegeben wurde und auf die sich der Extended-Service-Aufruf bezieht.

Rückgabewert

Typ
array
Beschreibung
Ein assoziatives Array mit den Ergebnisdaten des Extended-Service-Aufrufs. Enthält serverspezifische Felder wie targetReference. Wenn kein Extended-Service-Ergebnis vorliegt oder ein Fehler aufgetreten ist, kann das Array leer sein.

Beispiele

Extended-Service-Ergebnis nach yaz_wait() auswerten

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

if (!$id) {
    die('Verbindung fehlgeschlagen');
}

// Extended Service initiieren (z. B. Item Order)
yaz_es($id, 'itemorder', [
    'package-name' => 'order1',
    'user-id'      => 'user123',
]);

// Auf Antwort warten
yaz_wait();

// Fehler prüfen
$error = yaz_error($id);
if ($error) {
    echo 'Fehler: ' . $error . PHP_EOL;
} else {
    // Ergebnis des Extended Service auswerten
    $result = yaz_es_result($id);
    echo 'Extended-Service-Ergebnis:' . PHP_EOL;
    print_r($result);
}
?>
Extended-Service-Ergebnis: Array ( [targetReference] => REF-20240101-001 )

Ergebnisfeld targetReference gezielt auslesen

<?php
$id = yaz_connect('z3950.example.com:210/MARC21');

yaz_es($id, 'itemorder', [
    'package-name' => 'myorder',
]);

yaz_wait();

$result = yaz_es_result($id);

if (!empty($result['targetReference'])) {
    echo 'Server-Referenz: ' . $result['targetReference'] . PHP_EOL;
} else {
    echo 'Keine Zielreferenz erhalten.' . PHP_EOL;
}
?>
Server-Referenz: REF-20240101-001

// Wichtig · Fallstricke

Verfügbarkeit: Die YAZ-Erweiterung ist nicht Teil des PHP-Kernpakets. Sie muss separat über PECL installiert werden (pecl install yaz) und setzt die Systembibliothek libyaz voraus.

Aufruf-Reihenfolge: yaz_es_result() liefert nur sinnvolle Daten, wenn zuvor yaz_wait() aufgerufen wurde. Ein Aufruf ohne vorherigen yaz_wait() kann zu einem leeren oder unvollständigen Ergebnis führen.

Die Funktion ist speziell für Extended Services konzipiert. Für reguläre Such- und Abruf-Ergebnisse stehen andere YAZ-Funktionen wie yaz_hits() oder yaz_record() zur Verfügung.