Die Vornamencheck-API per PHP abfragen
Hier ein mögliches Skript in PHP, das auf die Vornamencheck-API zugreift.
<?php
/**
* Vornamencheck API Client
*
* Überprüft einen Vornamen auf sein wahrscheinliches Geschlecht
* via vornamencheck.de API
*/
// Fehlerbehandlung aktivieren
set_error_handler(function($severity, $message, $file, $line) {
throw new ErrorException($message, 0, $severity, $file, $line);
});
/**
* Übersetzt das englische Geschlecht in deutsche Bezeichnung
*/
function geschlechtAufDeutsch(string $gender): string {
return match($gender) {
'female' => 'weiblich',
'male' => 'männlich',
default => 'unbekannt'
};
}
/**
* Ruft die API ab und gibt das Ergebnis zurück
*/
function checkName(string $name): array {
$apiUrl = 'https://vornamencheck.de/api/v1/names/gender';
// API-Anfrage vorbereiten
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $apiUrl . '?name=' . urlencode($name),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FAILONERROR => true
]);
try {
// API-Anfrage durchführen
$response = curl_exec($ch);
if ($response === false) {
throw new Exception(curl_error($ch));
}
// JSON dekodieren
$result = json_decode($response, true);
if (json_last_error() !== JSON_ERROR_NONE) {
throw new Exception('Fehler beim Dekodieren der JSON-Antwort');
}
return $result;
} finally {
curl_close($ch);
}
}
/**
* Gibt das Ergebnis formatiert aus
*/
function printResult(array $result): void {
echo PHP_EOL;
echo "Ergebnis für den Namen '{$result['name']}':" . PHP_EOL;
echo str_repeat('-', 40) . PHP_EOL;
echo "Geschlecht: " . geschlechtAufDeutsch($result['gender']) . PHP_EOL;
echo "Wahrscheinlichkeit weiblich: {$result['statistics']['femaleProbability']} von 10" . PHP_EOL;
echo "Wahrscheinlichkeit männlich: {$result['statistics']['maleProbability']} von 10" . PHP_EOL;
}
// Hauptprogramm
try {
// Kommandozeilenargumente prüfen
if ($argc !== 2) {
throw new Exception("Verwendung: php script.php VORNAME");
}
$name = $argv[1];
// API abfragen und Ergebnis ausgeben
$result = checkName($name);
printResult($result);
} catch (Exception $e) {
fwrite(STDERR, "Fehler: " . $e->getMessage() . PHP_EOL);
exit(1);
}
Die Ausgabe erfolgt dann in dieser Form:
Ergebnis für den Namen 'Petra:'
----------------------------------------
Geschlecht: weiblich
Wahrscheinlichkeit weiblich: 10 von 10
Wahrscheinlichkeit männlich: 0 von 10
Feedback / Kontakt
Wenn Sie Fragen oder Anregungen zum Artikel Vornamencheck haben, senden Sie mir bitte eine E-Mail an: vornamencheck+php@technotes.jakoubek.net