Merhaba arkadaşlar bu yazımızda PHP ile girilen ismin cinsiyetini nasıl bulunur? bunun hakkında kısa bir içerik hazırladım. Keyifli okumalar.
PHP ile bu işlemi yapmak için önce bir API linki ihityacımız vardır. Bu API, günde 1000 adede kadar ücretsizdir. API ile ilgili daha fazla bilgi edinmek için https://genderize.io websitesini ziyaret edin. Aşağıdaki kodları github profilimde paylaşacağım. Github gender-detector-by-name-with-php
Öncelikler bu işlemin basit halini gösterelim ki anlamak daha da kolaylaşır.
<?php
$name= "mehmet";
$json = file_get_contents('https://api.genderize.io/?name='.$name);
$data = json_decode($json,true);
$getGender = $data['gender'];
$getName = $data['name'];
$getCount = $data['count'];
printf("İsim: %s - Cinsiyet: %s - Sıra: %s", $getName , $getGender , $getCount );
?>
Çıktı:
İsim: mehmet - Cinsiyet: male - Sıra: 17085
Birden fazla isim girmek için ise;
<?php
$nameArr = ['muzaffer', 'selim', 'hatice', 'esra', 'ilkay', 'Ege'];
$nameList = implode("&name=",$nameArr); //dizilerin arasına "&name=" ekler
$json = file_get_contents('https://api.genderize.io/?name='.$nameList);
$data = json_decode($json,true);
foreach ($data as $value) {
printf("İsim: %s — Cinsiyet: %%s %s — count: %s <br>", $value['name'] , ($value['probability'] * 100) , (($value['gender'] == "male") ? "Erkek" : "Kadın" ) , $value['count'] );
}
?>

Form yardımı ile bir veya birden fazla isim girmek için ise;
<?php
$control = md5(1458); // form kontrol
if(isset($_POST['gendersubmit']) && md5($_POST['gendersubmit']) == $control ){
$isim = filter_input(INPUT_POST, "GF_isim", FILTER_SANITIZE_STRING) ;
$nameList = trim(str_replace(' ', '', $isim)); //boşlukları kaldır
$nameList = explode(",",$nameList); // diziye dönüştürme
$multiNameControl = count($nameList); // isim adetleri değişkene aktarıyoruz
foreach ($nameList as &$onlyNameList) {
$onlyNameList = preg_replace("/[^a-zA-Z]+/", "", $onlyNameList); //harf dışındaki bütün karakterleri kaldırır.
}
$nameList = implode("&name=",$nameList); // dizilerin arasına "&name=" ekler
$json = file_get_contents('https://api.genderize.io/?name='.$nameList); //belirtilen URL'deki json alıyoruz.
$data = json_decode($json,true); // json kodlarını diziye aktarıyoruz.
echo "<br>";
if ($multiNameControl != 1) { // değişkene aktarılan isim adetlerini burada kontrol ediyoruz.
foreach ($data as $value) {
printf("isim: %s — cinsiyet: %%s %s — Sıra: %s <br>", $value['name'] , ($value['probability'] * 100) , (($value['gender'] == "male") ? "Erkek" : "Kadın" ) , $value['count'] );
}
}else{
printf("İsim: %s — Cinsiyet: %%s %s — Sıra: %s <br>", $data['name'] , ($data['probability'] * 100) , (($data['gender'] == "male") ? "Erkek" : "Kadın" ) , $data['count'] );
}
}
?>
<!DOCTYPE html>
<html lang="TR-tr">
<head>
<meta charset="UTF-8">
<title>PHP ile isimden cinsiyet bulma</title>
</head>
<body>
<h1>İsimden cinsiyet bulma</h1>
<form action="" method="post">
<input type="text" name="GF_isim" placeholder="Jay, Dean, Jerry">
<input type="hidden" name="gendersubmit" value="1458">
<input type="submit" value="Gönder">
</form>
</body>
</html>
Arkadaşlar yazımızda hata veya önerileriniz olursa lütfen yorum yapmayı unutmayın.
Unutmayın! Paylaşmak; kazanmanın en hızlı ve kolay yoludur. Bir sonraki makalede görüşmek dileğiyle esen kalın.