Slečno Evičko, jakého jste pohlaví?

Ale to přeci poznáte! Ale pro počítač už to tak jednoduché není. Personifikace e-mailů i jiných textů uživatele vždy potěší a zapůsobí osobnějším dojmem, obzvlášť když k tomu máte vše potřebné. A to nám přeci jde.

Jak ale určit pohlaví, když máte k dispozici jen jméno? Je to přeci jednoduché! Vezměte do ruky kalendář a .... koukněte, jestli nemá svátek někdo, koho znáte a pak kalendář odložte. Knihovnu pro zjišťování pohlaví podle jména i s databází za nás už dávno někdo udělal a je k dispozici i pro PHP - tím máme to nejhorší za sebou. Řeč je o PHP rozšíření Gender.

PHP rozšíření Gender si můžete pro svůj hosting pohodlně zapnout v administraci.

Na vlastním serveru nainstalujete rozšíření velmi snadno:

pecl install gender

Krom načtení rozšíření není potřeba nic nastavovat. Ukážeme si použití, které je velmi jednoduché:

use Gender;

$gender = new Gender();

$name = "Eva";
$country = Gender::CZECH_REP;

$result = $gender->get($name, $country);
$data = $gender->country($country);

switch($result) {
    case Gender::IS_FEMALE:
        printf("Jméno %s v %s je ženské\n", $name, $data['country']);
    break;

 
    case Gender::IS_MOSTLY_FEMALE:
        printf("Jméno %s v %s je většinou ženské\n", $name, $data['country']);
    break;

 
    case Gender::IS_MALE:
        printf("Jméno %s v %s je mužské\n", $name, $data['country']);
    break;

 
    case Gender::IS_MOSTLY_MALE:
        printf("Jméno %s v %s je většinou mužské\n", $name, $data['country']);
    break;

 
    case Gender::IS_UNISEX_NAME:
        printf("Jméno %s je unisex v %s\n", $name, $data['country']);
    break;

 
    case Gender::IS_A_COUPLE:
        printf("Jméno %s v %s můžské i ženské\n", $name, $data['country']);
    break;

 
    case Gender::NAME_NOT_FOUND:
        printf("Jméno %s nebylo nalezeno pro %s\n", $name, $data['country']);
    break;

 
    case Gender::ERROR_IN_NAME:
        echo "V zadaném jméně je chyba!\n";
    break;
 
    default:
        echo "Nastala chyba!\n";
    break;

}

Bohužel si příliš nerozumí s UTF-8 , pokud tedy máte skripty v UTF-8 (což jsou v dnešní době skoro všechny), bude navíc potřeba jméno převést na správné kódování, třeba takto:

setlocale(LC_ALL, 'cs_CZ.UTF8');

$name = iconv("UTF-8", "CP1250//TRANSLIT", "Tomáš");

Využití a přesnost

Využití Genderu je široké. Můžete např. za uživatele vyplnit políčko při registraci a nebo se na pohlaví neptat vůbec a určovat až dle jména. Taktéž se hodí, pokud máte databázi uživatelů a hodilo by se vám znát i pohlaví. U takového e-shopu s oblečením slečny či dámy určitě více potěší newsletter s akcí na kabelku než na balík trenýrek.

Určení proběhne ve většině případů zcela správně, ale i v našich končinách jsou jména, které mu způsobí problém. Třeba "Vlasta" může být ženské i mužské - takových případů bude minimum, ale pro některá použití je vhodné s tím počítat a mít možnost zapsat pohlaví ručně.

Chcete více informací? Kontaktujte nás

Potřebujete s něčím poradit nebo si jen popovídat? Napište nám na email nebo zavolejte.
Rádi zodpovíme vaše dotazy. Naleznete nás i na Facebooku a Twitteru.