Nedense çalışmadı.
Mesela örnek istanubla ne zaman kar yağacak dediğimde nihat odabaşı diye wiki çıkıyor.
Eğer müsaitseniz attığım wiki php kodla düzenleyip atma şansınız var mı acaba.
Gerçekten oyalıyorum ama uzun zamandır uğraştığım bir mesele :)
@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.
Şöyle diyebilirim,
Her wiki'nin üstünde (php kodu oraya koydum çünkü) ne arama yapılırsa 'ayakkabı' yazısı çıkıyor. Yani Wiki apisine entegre etmek zor gibi olacak.
Hala çözemedim. 1 ay oldu olacak.
Ç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 :)
@g4rymckinn0n attığım php kod ile bana yardımcı olabilme şansın var mı ?
@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.
Ya da başka php kodu ile yapabilirmiyiz
Yani gidiyor aramada mesela ios 16 ne zaman çıkıyor 'çıkıyor'u algılayıp başka bir şey çıkarıyor. Lütfen yardım edin :D Bunu çözsem çok rahatlıcam. Veya başka php kodu ile de engelleyebilirmiyiz ?