A la hora de detectar el genero de una persona en base al nombre, nos podemos ayudar de dos servicios web, gender API y Genderize.io. Los dos funcionan estupendamente, y los dos tienen un limite de peticiones, y funcionan los dos muy rápidos, y tienen los dos un funcionamiento prácticamente igual. He creado un gist que usa los dos servicios, por defecto usa Gender API, y que esta configurado para España, aunque se puede cambiar para cualquier país cambiando el código de país.
function generoPersona($nombre, $provider = 'genderAPI') | |
{ | |
$providers = array( | |
'genderAPI' => array( | |
'url' => 'https://gender-api.com/get?name=', | |
'pais' => '&country=ES' | |
), | |
'genderize' => array( | |
'url' => 'https://api.genderize.io/?name=', | |
'pais' => '&country_id=es' | |
) | |
); | |
if (array_key_exists($provider, $providers)) { | |
$dataProvider = $providers[$provider]; | |
} | |
$generoPersona = 'Hombre'; | |
$curl = curl_init($dataProvider['url'].$nombre.$dataProvider['pais']); | |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); | |
$result = json_decode(curl_exec($curl)); | |
if (is_a($result, 'stdClass') && property_exists($result, 'gender')) { | |
$generoPersona = ($result->gender == 'female')? 'Mujer' : 'Hombre'; | |
} | |
return $generoPersona; | |
} |
Mas info: https://gender-api.com y https://genderize.io