Signatur
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
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;
}
?>
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;
?>
// 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.