Cümle İçerisinde Arama
// 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.
<?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
}