Skip to content

Instantly share code, notes, and snippets.

@rubo77
Created June 18, 2014 15:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rubo77/ad30cb1ef3b5ca830559 to your computer and use it in GitHub Desktop.
Save rubo77/ad30cb1ef3b5ca830559 to your computer and use it in GitHub Desktop.
Gender-Recognition Function in PHP
<?
function unhtmlentities($text_to_convert) {
return @html_entity_decode($text_to_convert, ENT_QUOTES, 'UTF-8');
}
define("ae",unhtmlentities('&auml;'));
define("oe",unhtmlentities('&ouml;'));
define("ue",unhtmlentities('&uuml;'));
define("sz",unhtmlentities('&szlig;'));
define("Ae",unhtmlentities('&Auml;'));
define("Oe",unhtmlentities('&Ouml;'));
define("Ue",unhtmlentities('&Uuml;'));
/**
* findet aus einem Namen titel,vorname,nachname und ev. geschlecht
* heraus und setzt es zu fullname, anrede (Sehr geehrter Herr ".$r["fullname"];)
* und doktoranrede="Sehr geehrte Frau Dr. ".$r["fullname"];
* zusammen
* wenn der name nicht dabei ist, erkennt man dies: dann wiedersprechen sich titel="Frau";
* und geschlecht=M
*
* @author Ruben
* @param $fullname string
* @return array
*/
function analyse_fullname($fullname=null){
$n=split_fullname($fullname);
$r["vorname"]=$n[0];
$r["nachname"]=$n[1];
$r["fullname"]=$fullname;
$r["titel"]="Frau";
$r["geschlecht"]="M";
if(in_array(strtolower($r["vorname"]),array('achim',
'adam',
'adolf',
'albert',
'albrecht',
'alexander',
'alfons',
'alfred',
'alois',
'andre',
'andreas',
'anton',
'antonio',
'armin',
'arno',
'arnold',
'arthur',
'artur',
'august',
'axel',
'benjamin',
'benno',
'bernd',
'bernhard',
'berthold',
'bj'.oe.'rn',
'bodo',
'bruno',
'burkhard',
'carsten',
'christian',
'christoph',
'claus',
'clemens',
'daniel',
'david',
'dennis',
'detlef',
'detlev',
'dieter',
'dietmar',
'dietrich',
'dirk',
'eberhard',
'eckhard',
'edgar',
'edmund',
'eduard',
'edwin',
'egon',
'elmar',
'emil',
'engelbert',
'erhard',
'erich',
'ernst',
'erwin',
'eugen',
'ewald',
'felix',
'ferdinand',
'florian',
'frank',
'franz',
'franz-josef',
'fred',
'friedhelm',
'friedrich',
'fritz',
'georg',
'gerald',
'gerd',
'gerhard',
'gert',
'g'.ue.'nter',
'g'.ue.'nther',
'gottfried',
'gregor',
'guido',
'gunter',
'gustav',
'hans',
'hans-dieter',
'hans-georg',
'hans-joachim',
'hans-j'.ue.'rgen',
'hans-peter',
'hans-werner',
'harald',
'harry',
'hartmut',
'heiko',
'heiner',
'heinrich',
'heinz',
'helmut',
'henning',
'henry',
'herbert',
'heribert',
'hermann',
'holger',
'horst',
'hubert',
'hugo',
'ingo',
'jakob',
'jan',
'jens',
'joachim',
'jochen',
'johann',
'johannes',
'josef',
'j'.oe.'rg',
'j'.ue.'rgen',
'karl',
'karl-heinz',
'karlheinz',
'karsten',
'klaus',
'klaus-dieter',
'klaus-peter',
'konrad',
'kurt',
'lars',
'leo',
'leonhard',
'lorenz',
'lothar',
'ludger',
'ludwig',
'lutz',
'maik',
'manfred',
'manuel',
'marc',
'marcel',
'marco',
'marcus',
'mario',
'mark',
'markus',
'martin',
'mathias',
'matthias',
'max',
'michael',
'mike',
'nikolaus',
'norbert',
'olaf',
'oliver',
'oskar',
'oswald',
'otto',
'patrick',
'paul',
'peter',
'philipp',
'raimund',
'rainer',
'ralf',
'ralph',
'r'.ue.'diger',
'reiner',
'reinhard',
'reinhold',
'rene',
'richard',
'robert',
'roland',
'rolf',
'roman',
'ronald',
'rudi',
'rudolf',
'sebastian',
'siegfried',
'simon',
'stefan',
'steffen',
'stephan',
'sven',
'theo',
'theodor',
'thomas',
'thorsten',
'timo',
'tobias',
'torsten',
'udo',
'ulf',
'ulrich',
'uwe',
'viktor',
'volker',
'waldemar',
'walter',
'werner',
'wilfried',
'wilhelm',
'willi',
'willy',
'winfried',
'wolfgang',
'wolfram'
))) $r["titel"]="Herr";
if(in_array(strtolower($r["vorname"]),array('adelheid'
,'agnes'
,'alexandra'
,'andrea'
,'anette'
,'angela'
,'angelika'
,'anita'
,'anja'
,'anke'
,'anna'
,'anne'
,'annegret'
,'anneliese'
,'annemarie'
,'annett'
,'annette'
,'anni'
,'antje'
,'astrid'
,'barbara'
,'beate'
,'berta'
,'bettina'
,'bianca'
,'birgit'
,'b'.ae.'rbel'
,'brigitte'
,'britta'
,'brunhilde'
,'carmen'
,'carola'
,'charlotte'
,'christa'
,'christel'
,'christiane'
,'christina'
,'christine'
,'claudia'
,'corinna'
,'cornelia'
,'dagmar'
,'daniela'
,'diana'
,'dora'
,'doris'
,'dorothea'
,'dorothee'
,'edeltraud'
,'edith'
,'elena'
,'eleonore'
,'elfriede'
,'elisabeth'
,'elke'
,'ella'
,'ellen'
,'elli'
,'elsa'
,'elsbeth'
,'else'
,'elvira'
,'emma'
,'erika'
,'erna'
,'eva'
,'eva-maria'
,'evelyn'
,'franziska'
,'frieda'
,'gabi'
,'gabriele'
,'gaby'
,'gerda'
,'gerlinde'
,'gertraud'
,'gertrud'
,'gisela'
,'gudrun'
,'hanna'
,'hannelore'
,'hedwig'
,'heide'
,'heidemarie'
,'heidi'
,'heidrun'
,'heike'
,'helene'
,'helga'
,'herta'
,'hilde'
,'hildegard'
,'ida'
,'ilona'
,'ilse'
,'ina'
,'ines'
,'inge'
,'ingeborg'
,'ingrid'
,'irene'
,'irina'
,'iris'
,'irma'
,'irmgard'
,'isolde'
,'jana'
,'johanna'
,'josefine'
,'judith'
,'julia'
,'jutta'
,'karin'
,'karola'
,'katharina'
,'kathrin'
,'katja'
,'katrin'
,'kerstin'
,'kirsten'
,'klara'
,'kornelia'
,'k'.ae.'the'
,'liane'
,'lieselotte'
,'lisa'
,'liselotte'
,'lore'
,'lotte'
,'luise'
,'lydia'
,'magdalena'
,'manuela'
,'marga'
,'margarete'
,'margarethe'
,'margit'
,'margot'
,'margret'
,'maria'
,'marianne'
,'marie'
,'marina'
,'marion'
,'marita'
,'marlene'
,'marlies'
,'martha'
,'martina'
,'mathilde'
,'mechthild'
,'melanie'
,'michaela'
,'monika'
,'nadine'
,'nicole'
,'nina'
,'olga'
,'paula'
,'petra'
,'ramona'
,'regina'
,'regine'
,'renate'
,'rita'
,'rosa'
,'rosemarie'
,'roswitha'
,'ruth'
,'sabine'
,'sabrina'
,'sandra'
,'sibylle'
,'sieglinde'
,'sigrid'
,'silke'
,'silvia'
,'simone'
,'sonja'
,'stefanie'
,'steffi'
,'stephanie'
,'susanne'
,'sybille'
,'sylvia'
,'tanja'
,'tatjana'
,'thea'
,'therese'
,'theresia'
,'tina'
,'ulrike'
,'ursula'
,'uta'
,'ute'
,'vera'
,'verena'
,'veronika'
,'waltraud'
,'waltraut'
,'wilma'
,'yvonne'
))) $r["geschlecht"]="W";
if ($r["geschlecht"]=="M") $r["anrede"]="Sehr geehrter Herr ".$r["fullname"];
else $r["anrede"]="Sehr geehrte Frau ".$r["fullname"];
if ($r["geschlecht"]=="M") $r["doktoranrede"]="Sehr geehrter Herr Dr. ".$r["fullname"];
else $r["doktoranrede"]="Sehr geehrte Frau Dr. ".$r["fullname"];
return $r;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment