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.
<!doctype html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">
<title>Document</title>
<style>
#feedBack {
display: none;
}
.success {
color: #495057;
background-color: #fff;
border-color: #198754 !important;
outline: 0;
box-shadow: 0 0 0 0.2rem rgb(74, 185, 134) !important;
}
.error {
color: #495057;
background-color: #fff;
border-color: #dc3545 !important;
outline: 0;
box-shadow: 0 0 0 0.2rem rgb(229, 88, 102) !important;
}
</style>
</head>
<body>
<div class="container">
<div class="row mt-5">
<div class="col">
<div class="input-group">
<input type="text" class="form-control" placeholder="Arama metnini giriniz" id="searchInput">
<div class="input-group-append">
<button class="btn btn-outline-primary" type="button" id="searchButton">Ara</button>
</div>
</div>
<small id="feedBack"></small>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
<script>
const input = $("#searchInput")
const button = $("#searchButton")
const feedBack = $("#feedBack")
const sets = {
errorMessage: 'Kayıt yok',
successMessage: 'Kayıt var',
liveSearch: true // Canlı aramayı kapatmak için false yapın, 1000 lerce kayıt içinde canlı arama yapmak performans sorunları oluşturabilir
};
(function (opt) {
const options = { // Varsayılan değerler
liveSearch: true,
errorMessage: 'Üzgünüz kaydınız bulunamadı',
successMessage: 'Kaydınız başarılı',
...opt,
clear: () => {
feedBack.hide()
input.removeClass('success error')
},
search: inp => {
$.getJSON('filtre.json').then(response => {
let values = response.map(e => e.sw)
if (inp.value.length) {
if (values.includes(inp.value)) {
feedBack.html(options.successMessage).removeClass('text-danger').addClass('text-success').show()
input.removeClass('error').addClass('success')
}
else {
feedBack.html(options.errorMessage).removeClass('text-success').addClass('text-danger').show()
input.removeClass('success').addClass('error')
}
}
else
options.clear()
})
}
}
if (options.liveSearch) {
input.on({
input: function() {
options.search(this)
},
blur: options.clear
})
}
button.on("click", () => {
options.search(input[0])
})
})(sets)
</script>
</body>
</html>
filtre.json aynı dizinde bulunsun.
Bazı geri bildirim özellikleri istenildiği gibi çalışmayabilir. Görsel açıdan