v2.5.2
Giriş yap

Arrayları echo dönüştürme

erdal42
401 defa görüntülendi ve 1 kişi tarafından değerlendirildi
function mb_ucfirst($kelime): string
{
    return mb_strtoupper(mb_substr($kelime,0, 1)) . mb_substr($kelime, 1);
}

function TDKSozluk(string $kelime, $kelimeLimit = true, int $anlamLimit = 2, int $benzerLimit = 10): array
{
    $ch = curl_init("https://sozluk.gov.tr/gts?ara=$kelime");
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_SSL_VERIFYPEER => false
    ]);
    $sonuc = curl_exec($ch);
    curl_close($ch);
    $sonuc = json_decode($sonuc,true);

    $return = [];
    for ($i = 0; $i <= count($sonuc); $i++) { // En fazla kaç tane kelime anlamı dönsün limiti. Yani eş anlamlı kaç kelime görünsün. Verdiğim hak örneği, hâk ve ikinci sırada bulunan hak kelimesini döndürür varsayılan 2 ile
        if ($kelimeLimit !== true) {if ($i == $kelimeLimit) break; }
        if (isset($sonuc[$i])) {
            $madde = mb_ucfirst($sonuc[$i]['madde']);
            $return[$sonuc[$i]['kac']]['kelime'] = $madde;
            for ($j = 0; $j < count($sonuc[$i]['anlamlarListe']); $j++) {
                if ($j == $anlamLimit) break;
                if (isset($sonuc[$i]['anlamlarListe'][$j])) {
                    $return[$sonuc[$i]['kac']]['anlamlar'][$j] = [
                        'anlam' => $sonuc[$i]['anlamlarListe'][$j]['anlam'],
                        'ozellik' => $sonuc[$i]['anlamlarListe'][$j]['ozelliklerListe'][0]['tam_adi'] ?? null // Sadece ilk sıradaki özelliğin değeri
                    ];
                }
            }
            $birlesikler = $sonuc[$i]['birlesikler'];
            if (strlen($birlesikler)) {
                $explode = explode(', ', $birlesikler);
                $return[$sonuc[$i]['kac']]['birlesikler'] = array_slice($explode, 0, $benzerLimit); // Birleşik kelimelerden en fazla kaç tane geri dönsün
            }
        }
    }
    return $return;
}

$h = TDKSozluk(htmlspecialchars($_GET['q']), 2, 1, 5);
print_r($h);


if (count($h)) {
 
}
else {

}

Merhabalar, Abdullah hocam sayesinde kodum hazır. TDK'dan veri çekiyoruz. Bunu nasıl if ile echo yani, düzenleyip veriyi işleyebiliriz ?

ebykdrms
774 gün önce
function div($content) { return "<div>$content</div>"; }
function section($content) { return "<section>$content</section>"; }
function strong($content) { return "<strong>$content</strong>"; }
function span($content) { return "<span>$content</span>"; }
function i($content) { return "<i>$content</i>"; }
function ul($content) { return "<ul>$content</ul>"; }
function li($content) { return "<li>$content</li>"; }

$kelimeler = "";
$anlamlar = "";
$birlesikler = "";
foreach($h as $item) {
    foreach($item["anlamlar"] as $anlam) {
        $anlamlar .= li(i($anlam["ozellik"]).div($anlam["anlam"]));
    };
    foreach($item["birlesikler"] as $birlesik) {
        $birlesikler .= li(span($birlesik));
    };
    $kelimeler .= div(
        div(strong("Kelime: ").span($item["kelime"]))
        .section(div(strong("Anlamlar")).ul($anlamlar))
        .section(div(strong("Birleşikler")).ul($birlesikler))
    );
};
echo $kelimeler;

Kodları test etme imkânım yok şu an. Varsayımsal olarak yazdım.
Hata veriyorsa sunucuda hata gösterimini açmalısınız yoksa hatayı göremeyiz.
Kodları if(count($h)) {...} içine alabilirsiniz.