azerbaycan-adlari

Php ilə Azərbaycan adları barədə məlumatın əldə edilməsi

Daha əvvəl Açık Hökumət Portalı haqqında yazmışdım. Bu yazımda həmin portal yardımı ilə php proqramlaşdırma dilindən istifadə edərək Ədliyyə nazirliyi tərəfindən təqdim edilən “Azərbaycan adları barədə məlumatın verilməsi” servisindən hər hansı bir adın mənasını əldə etməyə çalışacam.

İstifadə edəcəyimiz servis haqqında təlimatı buradan oxuya bilərsiniz:
İstifədə məlumatları

http://data.e-gov.az/api/v1/IEGOVService.svc/GetMeaningOfName/{name}

GetMeaningOfName – Metod
name – deyişən
Nümunə: http://data.e-gov.az/api/v1/IEGOVService.svc/GetMeaningOfName/Koroğlu

Açıqlamadan da göründüyü kimi GetMeaningOfName metodundan istifadə edərək name dəyişənini göndərməklə adın mənasını əldə edə bilərik. Nümunə olaraq Koroğlu adı istifadə olunub. Baxaq görək Koroğlu adı ilə metoda müraciət etdikdə cavab olaraq hansı məlumatlar geri qaytarılır?

{
fault: {
   faultCode: 0,
   faultString: ""
},
response: {
    PropertyChanged: null,
    faultCodeField: null,
    faultStringField: null,
    nameField: "Koroğlu",
    name_meaningField: "kişi adı, mürəkkəb XVI – XVII əsrlərdə Azərbaycanda yerli feodallara və yadelli işğalçılara qarşı vuruşan cəlalilər hərəkatı başçılarından birinin ləqəbi olmuşdur. «Koroğlu» dastanının xalq arasında geniş yayılması ilə əlaqədar olaraq ləqəb ada çevrilmişdir. Koroğlu şəxsi ad müasir azərbaycanlılar arasında igidlik, qəhrəmanlıq rəmzi kimi işlənir.",
    sexField: "kişi"
}
}

Gördünüyünüz kimi sorğu nəticəsində bizə əsas 2 məlumat qaytarılır. Birincisi fault (səhv) ikincisi isə response (cavab). və təbii ki, onlara aid digər alt məlumatlar. Biz burada fault bölməsində faultCode istifadə edərək göndərdiyimiz sorğunun nəticəsinin olub olmadığını təyin edə bilərik. Belə ki, əgər faultCode bizə 0 (sıfır) dəyərini geri qaytarırsa deməli səhv yoxdur və sorğumuzun  nəticəsi var. Yox əgər 1 dəyərini qaytarırsa deməli səhv var, göndərdiyimiz sorğunun nəticəsi yoxdur. Yəni mənasını axtardığımız ad ilə əlaqəli heçbir məlumat tapılmayıb.

Digər istifadə edəcəyimiz məlumat isə response bölməsindədir. Burada bizə lazım olan nameField (sorğu üçün göndərilən ad) və name_meaningField (adın mənası) bölmələdiri. İstəsəniz sexField bölməsini də istifadə edə bilərsiniz ancaq adın mənası bölməsində cinsiyyət bildirildiyi üçün əlavə olaraq bu bölmədən istifadə etməyi ehtiyac görmürəm.

İndi gələk php ilə bu məlumatı necə əldə edəcəyimizə. Kodları paylaşmadan qeyd edim ki, məlumatı qarşı tərəfdən səhifəni yeniləmədən əldə etmək üçün ajax`dan istifadə edəcəm.

index.php faylı

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Azərbaycan adlarının mənası</title>
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous">
    <style type="text/css">
        .container {max-width: 900px;}
    </style>
</head>
<body>
<div class="container">
        <br>
        <div class="jumbotron">
          <h3><strong>Azərbaycan adlarının mənası</strong></h3>
          <p><a href="http://data.gov.az">data.gov.az</a> servislərindən istifadə edərək Ədliyyə Nazirliyi tərəfindən təqdim edilən elektron xidmətlərə əsasən Azərbaycan adları barədə məlumatın verilməsi.</p>
        </div>
        
        <div class="input-group">
            <input type="text" class="form-control" placeholder="adı daxil edin.." name="ad" id="ad">
            <span class="input-group-btn">
                <button type="submit" class="btn btn-danger" type="submit" id="axtar">Axtar!</button>
            </span>
        </div><!-- /input-group -->
    <br>
    <div class="result"></div>
    
    <hr>
    <p class="text-center">developed by <a href="http://www.anarsamadov.net">anar samadov</a></div>
</div>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
<script type="text/javascript" src="main.js"></script>
</body>
</html>

ajax.php faylı

<?php
    $string = @file_get_contents("http://data.e-gov.az/api/v1/IEGOVService.svc/GetMeaningOfName/".urlencode($_POST["ad"]));
    $json = json_decode($string, true);
    if($json["fault"]["faultCode"]==0)
    {
        if ($json)
        {
            echo '<div class="panel panel-default">
                <div class="panel-heading"><strong>Axtarılan ad: </strong>'.$json["response"]["nameField"].'</div> 
                <div class="panel-body">';
                echo $json["response"]["name_meaningField"];
            echo '</div></div>';
        }
    }
    else
    {
        echo "Məlumat tapılmadı!";
    }

ajax.php faylında file_get_contents funksiyası ilə servisdəki json formatındakı məlumatları əldə etdik. Sorğu üçün göndərəcəyimiz adda Azərbaycan şriftlərindən istifadə ediləcəyi üçün burada urlencode funksiyasından istifadə etdik.  Yəni hərflər avtomatik olaraq lazımi simvollarla dəyişdirilir ki, şrift problemi yaşanmasın. Daha sonra json_decode funskiyası ilə json formatındakı məlumatları oxuduq. Növbəti addımlarda $json dəyişəninə mənimsətdiyimiz məlumatları oxuduq.

main.js faylı

$(document).ready(function() {

    $('#ad').keydown(function (e){
        if(e.keyCode == 13){
            var ad;
            ad=$("#ad").val();
            gonder(ad);
        }
    });

    $("#axtar").click(function(){
        var ad;
        ad=$("#ad").val();
        gonder(ad);
    });

    function gonder(ad)
    {
        $(".result").html("<img src='loader.gif'>");
        $.ajax({
            type: "POST",
            url: "ajax.php",
            data: {ad:ad},
            success: function(result){
                $(".result").html(result);
            }
        });
    }
});

Bu qədər. Kodları istifadə edərək online rejimdə Azərbaycan adlarınən mənalarını əldə edə bilərsiniz.

Scriptin tam kodu üçün github hesabıma baxa bilərsiniz.

Scripti test etmək üçün buraya klikləyin.

#azərbaycan adları , #azərbaycan adlarının mənası

2 şərh yazılıb

Anar SAMADOV üçün bir cavab yazın Cavabı ləğv et