PHP

PHP ile İsime Göre Cinsiyet Analizi

PHP ile İsime Göre Cinsiyet Analizi

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: &percnt;%s  %s — count: %s <br>", $value['name'] , ($value['probability'] * 100) , (($value['gender'] == "male") ? "Erkek" : "Kadın" ) , $value['count'] );
}
?>
Php ile cinsiyet bulma

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: &percnt;%s  %s — Sıra: %s <br>", $value['name'] , ($value['probability'] * 100) , (($value['gender'] == "male") ? "Erkek" : "Kadın" ) , $value['count'] );
        }
    }else{
        printf("İsim: %s — Cinsiyet: &percnt;%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.

Bu makale yardımcı oldu mu?
EvetHayır

Paylaş

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir