v2.5.2
Giriş yap

Cümle İçerisinde Arama

acemi
702 defa görüntülendi ve 1 kişi tarafından değerlendirildi
// filtre.json
{
    "kelimeler":[
        "******",
        "s....",
        "g....",
        "a...."
        ]
}
Class Filtre {
    public $dosya = "filtre.json"; 
    public function Filtre($Filtre){
        $File = file_get_contents($this->dosya);
        $File = json_decode($File);
        $File = $File->kelimeler;
        $response = [];
        foreach ($File as $key => $value) {
            $response[] = [$value];
        }
        $Result = json_encode($response);
        $String = strstr($Result, $Filtre); 
        if($String === false):
            return false;
        else:
            return true;
        endif;
    }
}

arkadaşlar böyle birşey yaptım fakat istediğim gibi çalışmıyor.

cümle içerisinde

    $kelime = "Uzaylı seni yakalarsam ****** içinden geçerim";
    $Filtre = new Filtre();
    print_r($Filtre->Filtre($kelime));
    
    sonuç false dönüyor true dönmesi lazım fakat
    $kelime = "******";
    $Filtre = new Filtre();
    print_r($Filtre->Filtre($kelime));
    

cümle içerisinde tam bir arama yapmak istiyorum yardımcı olurmusunuz bununla ilgili.

h4ckdr0
761 gün önce
<?php

// bir json dosyasındaki anahtarın değerine göre arama işlemi yapan sınıf
class Filter
{
    // json dosyası
    private $jsonFile = 'filter_arr.json';

    // json dosyasındaki anahtarın değerine göre arama işlemi
    public function searchAndReturnJson($search)
    {
        // json dosyasını oku
        $json = file_get_contents($this->jsonFile);
        // json dosyasını diziye çevir
        $array = json_decode($json, true);
        // dizi içinde arama yap
        $result = $this->search($array, $search);
        // sonuç varsa json olarak döndür
        if ($result) {
            return json_encode($result);
        }
        // sonuç yoksa false döndür
        return false;
    }

    // dizi içinde arama işlemi
    private function search($array, $search)
    {
        // dizi içinde dolaş
        foreach ($array as $key => $value) {
            // anahtarın değeri aranan değerse
            if ($value == $search) {
                // anahtarın değerini döndür
                return $value;
            }
            // anahtarın değeri dizi ise
            if (is_array($value)) {
                // dizi içinde arama yap
                $result = $this->search($value, $search);
                // sonuç varsa
                if ($result) {
                    // sonucu döndür
                    // return $result;
                    return true;
                }
            }
        }
        // sonuç yoksa false döndür
        return false;
    }
}

// kullanım örneği:
require_once 'Filter.php';                          // Filter sınıfını kullanacağın sayfaya dahil et

$filter = new Filter();                             // sınıfı oluştur
$response = $filter->searchAndReturnJson('******'); // arama işlemi
if ($response) {                                    // sonuç varsa
    echo $response;                                 // sonucu ekrana yazdır
} else {                                            // sonuç yoksa
    echo 'Sonuç bulunamadı';                        // mesaj yazdır
}