Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Metin içinden sadece aradıgım kelime ile ilgili cümleyi nasıl cekerim. (arama motoru)

Konu, 'PHP' kısmında mally328 tarafından paylaşıldı.

  1. mally328

    mally328 Üye

    Kayıt:
    12 Ocak 2008
    Mesajlar:
    56
    Beğenilen Mesajlar:
    0
    Site içi arama sripti yazdım. Herşey iyi gidiyordu lakin iş son rütuşlara gelip aranan sonuçları listeletmeye gelene kadar.


    Veritabanından
    PHP:
    SELECT FROM icerik WHERE Metin LIKE '%$arananterim%' 
    PHP:
    while($r=mysql_fetch_array($sorgu))
                            {     
                               
    $Metin            =$r["Metin"];
                               
    $Metin_htmlsiz    =strip_tags($Metin);
                                                     }

    ile çektiğim veriler hali ile icerik tablosunun metin kolonundaki tüm içeriği getiriyor.

    Ben ise Metin içinde sadece aradığım kelimenin cümlelerini göstertmek istiyorum. Belli kelime sayısı ile sıırlandırıp devamında üç nokta ( .. devamı için tıklayınız) tarzında göstermek istiyorum.

    Saygılar iyi çalışmalar.
     
  2. opera

    opera Daimi Üye

    Kayıt:
    17 Kasım 2007
    Mesajlar:
    553
    Beğenilen Mesajlar:
    0
    Meslek:
    Developer
    Şehir:
    Pütürge
    Hocam kodu tam olarak yazamadım ama şöyle yapsan;
    arananterimi sorgulatırsın sayfaya yazdırmadan önce eğer sonuç var ise sadece kelimeyi yazdırırsın , yok ise de yine textboxdan(arama kutucuğundan) gelen değeri yazdırır böyle bir sonuç yok dersin. Eğer sonuç var ise textboxdan gelen değeri alırsın hemen altına'da sonuçların linklerini listelersin...
     
  3. mally328

    mally328 Üye

    Kayıt:
    12 Ocak 2008
    Mesajlar:
    56
    Beğenilen Mesajlar:
    0

    Hocam dediğiğniz gibi yaptım ama aranan terimin arayanın ihtiyacına yönelik olup olmadıgını göstermek için içinde bulundugu cıumleyide göstermek lazım.
     
  4. SEYRANLI

    SEYRANLI Daimi Üye

    Kayıt:
    30 Aralık 2007
    Mesajlar:
    2,162
    Beğenilen Mesajlar:
    0
    Meslek:
    Öğretmen
    Şehir:
    Ankara
    strpos ile aradğın kelimenin yerini bulsan, daha sonrada substr ile 50 karakter öncesiyle 50 karakter sonrasını göstersen başa ve sona ... koyasn olur sanırım
     
  5. mally328

    mally328 Üye

    Kayıt:
    12 Ocak 2008
    Mesajlar:
    56
    Beğenilen Mesajlar:
    0
    Sorunu çözdüm ama explode fonksiyonu ile yaptım. Algoritmasın kuracağım kodlayacağım derken strpos kullansam daha iyiymiş galiba ..

    Strposu arastırayım biraz da bali.

    Bu arada anayan olursa( değişkenleri çok gıcık vermişim de ) belki işinize yara konu baslıgı açmısken verme gereği hissettim. KOdlar:

    PHP:
     #'''''''''''''''''''''''''''''  bulunan metin içinde aradıgımız kelimeye sahip cümleyi bulmaya geldi sıra    başla
                                                     //şimdilik $arama  diye aratıyorum. sonrada kelime[$i] şekline entegre etmeliyim.
                                                     
    $a explode("$arama","$Metin");
                                                        
    $a1 explode(".","$a[0]");
                                                        
    $sayac=0;
                                                        while(
    $a1[$sayac]!=""){
                                                        
    $sayac++;
                                                        }
                                                        
    $sayac=$sayac-1
                                                        
    // $a1[$sayac] = aranan kelimenin dahil oldugu cümlenin arnan kelimeye kadar olan kısmı
                                                        
                                                        
    $a2 explode(".","$a[1]");
                                                        
    //$a2[0];  aranan kelimenin içinde bulunduğu cümlenin aranan metinden cümleye kadar olan kısmı
                                                        
    echo "########   ".$a1[$sayac]." ".$arama." ".$a2[0]." ".$a2[1]." ... devamı iin tıklayınız.";