Aslında tam @abdullahx hocamın işi bu. Nerde hata yapıyorum anlamıyorum. Sinirden tüm kodu sildim. Elle yaptım şuanda. İlçe seçimi yaptırsam işim bittiydi. Beceremedim :D
@rephp7 Denedim, bir çok yerde hata var. Araştırıyorum hala. Yardım bekliyorum anca :(
Bir kutucuk koyabilsek ve ona değer verip illeri mgm'den çekebilsek. 1 2 saatlik şey ama. Ah biraz daha iyi olsam :)
Yardımlarınızı bekliyorum.
@rephp7 Aslında engelleme yapmıyor. O kelimeyi yazınca başka wiki getiriyor. Yani çok uzun iş. Dediğim gibi yapılırsa eğer daha kolay olur benim için.
BİR DAKİKA!
@rephp7 tamamdır. Sorunu çözdüm. Çok aceleci davranıyorum gerçekten. Çok sağol. İşi hallettim. Gerçekten teşekkürler.
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 :)