Start · Sprachen · PHP · Referenz · yaz_element

yaz_element

Funktion

Gibt den Element-Set-Namen für den nächsten Datensatz-Abruf in einer YAZ-Z39.50-Verbindung an.

seit PHP 4.0.1 Kategorie: misc

Signatur

yaz_element(resource $id, string $elementset): bool

Beschreibung

yaz_element legt den sogenannten Element-Set-Namen fest, der beim nächsten Datensatz-Abruf über eine Z39.50-Verbindung verwendet wird. Der Element-Set-Name bestimmt, welche Felder eines Datensatzes vom Ziel-Server zurückgegeben werden sollen – typische Werte sind "F" (Full, vollständiger Datensatz) oder "B" (Brief, Kurzzusammenfassung).

Diese Funktion wird im Zusammenhang mit der PHP/YAZ-Erweiterung (yaz) verwendet, die das Z39.50-Protokoll implementiert. Z39.50 ist ein Bibliotheksinformationsprotokoll, das vor allem in Bibliothekskatalogen und Datenbanksystemen eingesetzt wird.

Die Funktion muss vor dem eigentlichen Abruf mit yaz_present aufgerufen werden, da sie lediglich den internen Zustand der Verbindung konfiguriert. Der angegebene Element-Set-Name wird als Parameter in der Z39.50-Present-Anfrage mitgesendet.

  • Verwende "F" für vollständige Datensätze (Full record).
  • Verwende "B" für Kurz-Datensätze (Brief record).
  • Serverabhängig können auch benutzerdefinierte Element-Set-Namen unterstützt werden.

Parameter

Name Typ Default Beschreibung
$id Pflicht resource Die YAZ-Verbindungsressource, die von yaz_connect zurückgegeben wurde.
$elementset Pflicht string Der Name des Element-Sets, z. B. "F" für einen vollständigen Datensatz oder "B" für einen Kurzdatensatz. Der gültige Wert hängt vom Z39.50-Zielserver ab.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, andernfalls false.

Beispiele

Vollständige Datensätze aus einem Z39.50-Server abrufen

<?php
// Verbindung zu einem Z39.50-Server herstellen
$id = yaz_connect('z3950.loc.gov:7090/Voyager');

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

// Suche konfigurieren
yaz_syntax($id, 'usmarc');

// Element-Set auf "F" (Full) setzen
yaz_element($id, 'F');

// Suchanfrage stellen
yaz_search($id, 'rpn', '@attr 1=4 "PHP"');

// Anfragen absenden und auf Antworten warten
yaz_wait();

// Fehler prüfen
$error = yaz_error($id);
if ($error) {
    die('Fehler: ' . $error);
}

// Anzahl Treffer ausgeben
$hits = yaz_hits($id);
echo 'Treffer: ' . $hits . PHP_EOL;

// Ersten Datensatz abrufen
if ($hits > 0) {
    yaz_present($id);
    yaz_wait();
    $record = yaz_record($id, 1, 'string');
    echo $record;
}
?>
Treffer: 42 ...(MARC-Datensatz-Inhalt)...

Kurzdatensatz (Brief) anfordern

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

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

// Syntaxformat festlegen
yaz_syntax($id, 'sutrs');

// Element-Set auf "B" (Brief/Kurz) setzen
yaz_element($id, 'B');

// Suche ausführen
yaz_search($id, 'rpn', '@attr 1=1003 "Müller"');
yaz_wait();

$hits = yaz_hits($id);
echo 'Treffer (Brief): ' . $hits . PHP_EOL;
?>
Treffer (Brief): 15

// Wichtig · Fallstricke

Deprecation-Hinweis: Die yaz-Erweiterung gilt seit PHP 5 als veraltet und wurde in neueren PHP-Versionen aus dem Kern entfernt. Sie steht als PECL-Paket zur Verfügung, wird jedoch kaum noch aktiv gepflegt. Für neue Projekte sollten moderne Alternativen wie ZOOM oder spezialisierte Bibliotheken in Betracht gezogen werden.

Der tatsächlich unterstützte Element-Set-Name ist serverabhängig. Nicht alle Z39.50-Server unterstützen sowohl "F" als auch "B". Im Zweifelsfall sollte die Serverdokumentation konsultiert werden.