v2.5.2
Giriş yap

PHP ile cümleleri engelleme

erdal42
567 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Dediğim konu 1
Dediğim konu 2

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.

Cevap yaz
Cevaplar (19)
rephp7
1007 gün önce
//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
1007 gün önce

çözüldüğüne sevindim

rephp7
1007 gün önce

Elimden gelen bu kadar. son yorumundaki gibi aranan ile alakasız sonuç durumu nasıl düzeltilir bilemedim.
Henüz acemi seviyesindeyim bende, anca bu kadar yardım edebiliyorum.
Başka biri de geri kalanı düzenler umarım.

erdal42
1007 gün önce

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.

erdal42
1007 gün önce

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
1007 gün önce

zaten biz aranan şeyde olmasını istemedğimiz kelimeleri ayıklattık. Yani aramayı düzelttik.
wikiye gönderdiğin aramanın ayıklanmış hali. ayıklanan kelimeleri görmez

erdal42
1007 gün önce

@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 ?

erdal42
1007 gün önce

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.

erdal42
1007 gün önce

Şö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.

rephp7
1007 gün önce

bendeki $arama yerine $searchParam yaz

erdal42
1007 gün önce

Ç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 :)

rephp7
1007 gün önce

Ş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ı

erdal42
1007 gün önce

@g4rymckinn0n attığım php kod ile bana yardımcı olabilme şansın var mı ?

g4rymckinn0n
1007 gün önce

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

erdal42
1007 gün önce

@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.

m100
1007 gün önce

php'de "strstr" fonksiyonu ile metin içinde arama yaptırabiliyorsun bu sayede engellemek istediğin bir kelimeyi veya cümleyi if bloğu içerisinde aratırsan engelletebilirsin.

qplot
1008 gün önce

ne demek ıstedıgını anlayamadım sanırım dıgerlerıde anlamadı cevapsız kalmıs

erdal42
1010 gün önce

Başka yolu yok mu :)

erdal42
1012 gün önce

Ya da başka php kodu ile yapabilirmiyiz