PHP ile cümleleri engelleme
Merhabalar,
Örnekler ile gösterdiğim gibi sonlarda 'nasıl yapılır, nerede bulunur, yağacak mı'
gibi sonlara eklenen aramalarda php ile engellemek istiyorum.
Örnekler:
-$searchParam = htmlspecialchars($_GET['q']); nasıl yapılır
-$searchParam = htmlspecialchars($_GET['q']); yağacak mı
Verdiğim php kodlarına yeni küçük php kod yazarak engel olabilir miyiz ?
Veya ikinci veya üçüncü kelimelerden sonra php'nin çalışmasına nasıl engel olabiliriz ?
Lütfen, yardımlarınızı bekliyorum.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (19)
//bunu fonksiyonları tuttuğun dosyana yaz
function Ayikla($searchParam){
$sonuc = str_ireplace( array('nasıl', 'nasil', 'yapılır', 'nerede'), ' ', $searchParam);
return $sonuc;
}
// şunu bul
$searchParam = htmlspecialchars($_GET['q']);
//altına fonksiyonumuzla çağırdığımız şu kodu yaz.
$searchParam = Ayikla($searchParam);
@rephp7 Valla çok yaklaştık :D Çok sağol.
Eğer nasıl yapılır kelimeler algılandığında css ile örnek
.kutucuk
display:none;
diyerek kutucuğu göstertmeyiz. Olabilir mi acaba ?
Yine çıkıyıyor alakasız kutular ama.
Arka planda çalışıyor gibi.
Nasıl yapılır gibi sözcükleri yani array da yazılanları algılandığında kutucuğun çıkmasını engelleyebilirmiyiz ?
Aslında şöyle ;
$searchParam = "nerede ayakkabı nasıl yapılır";
yazdığın kod gibi ama
htmlspecialchars($_GET['q']); (yani bura ayakkabı kelimesi yazıldığında) nasıl çıkar.
Denildiğinde sonraki kelimeleri yani nasıl çıkar gibi sözcükleri algılamaması lazım.
Sadece ilk kelimeyi algılarsa yetiyor bile.
Ama Wiki'nin apisine nasıl entegre edebiliriz ki. Çok uğraştım ama bir türlü beceremedim.
Çalışıyor diyebilirim @rephp7
Bunu nasıl $searchParam = htmlspecialchars($_GET['q']); yapabiliriz.
Yani aslında nasıl nasil yapılır gibi cümleleri engelleyelim aramalarda yeter. Çıkmaz zaten.
Böyle bir imkan var mı ? Bu arada
//Aramak istediğimiz değer
$searchParam = htmlspecialchars($_GET['q']);
$searchTitle = [
"action" => "query",
"list" => "search",
"srsearch" => $searchParam,
"format" => "json",
/* Bu değerler kullanılarak sayfalama yapılabilir */
// "srlimit" => 10,
// "sroffset" => 9
];
/* verileri çekecek olan metodumuz */
function getData($params){
$endPoint = "https://en.wikipedia.org/w/api.php";
$url = $endPoint . "?" . http_build_query( $params );
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec( $ch );
curl_close( $ch );
return json_decode( $output, true );
}
echo '<ul>';
$result = getData($searchTitle);
$query = $result['query'];
$total = $query['searchinfo']['totalhits'];
$datas = $query['search'];
/* Sonuç var mı kontrolü */
if ($total){
foreach ($datas as $data){
/* görselleri çekmek için belirteceğimiz parametreler */
$imagesParam = [
"action" => "query",
"prop" => "images",
"titles" => $data['title'],
"format" => "json",
];
echo '<li>';
$images = getData($imagesParam);
$firstPage = reset($images['query']['pages']);
/* Konuya ait görsel değeri döndümü kontrolü yapılıyor */
if ($firstPage && count($firstPage['images']) > 0){
$imageUrlParams = [
"action" => "query",
"format" => "json",
"prop" => "imageinfo",
// İlk görseli alıyoruz
"titles" => $firstPage['images'][0]['title'],
'iiprop' => 'url'
];
/* Görselin detayını çekerek url değerini bulmak için istek atıyoruz */
$imageUrlResponse = getData($imageUrlParams);
$imageUrlResponseFirstPage = reset($imageUrlResponse['query']['pages']);
/* Dönen değer var mı kontrolü */
if ($imageUrlResponseFirstPage && count($imageUrlResponseFirstPage['imageinfo']) > 0)
echo '<img width="32" src="'. $imageUrlResponseFirstPage['imageinfo'][0]['url'] .'">';
}
echo $data['title'];
echo '</li>';
}
}else{
echo $searchParam . ' hakkında hiç içerik bulunamadı';
}
echo '</ul>';
Wiki api php'sine nasıl entegre ederiz. '$searchParam = htmlspecialchars($_GET['q']);' dan sonra nasıl yapılır felan algılanmasın.
Cevabın için çok teşekkür ederim :)
Şunu dener misin?
aşağıdaki kodda array içine benzer şekilde kelimelerini eklersin.
function Ayikla($arama){
$sonuc = str_ireplace( array('nasıl', 'nasil', 'yapılır', 'nerede'), ' ', $arama);
return $sonuc;
}
$arama = "nerede ayakkabı nasıl yapılır";
$aramaduzelt = Ayikla($arama);
echo $aramaduzelt;
Sonuç: ayakkabı
tayfun erbilen eğitim setinde str ile ilgili pek çok örnek var. dizi içerisindeki ilk ve son ifadeleri, herhangi bir ifadeyi ya da değeri yakalayıp değiştirebiliyor ya da buna göre işlem yaptırabiliyorsun.
herhangi bir değerden sonra ya da önce şu işlemi yap diyebiliyoruz.
ben de dersleri izliyorum 1 saat kadar önce o kısımları izledim çünkü :D
@qplot @m100
şöyle,
aramaa yapıldığında mesela ayakkabı nasıl çıkar kelimesini aratıldığında sadece ayakkabı kelimesini alıp çıkmasını istiyorum. nasıl çıkar nasıl yapılır vb benzer kelimeleri alınca çok başka wiki çıkıyor.
benim isteğim bu aslında.
deniyorum ama hata veriyor, bir türlü çözemedim.
yardımlarını istiyorum.