• 23-09-2012, 20:32:31
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Selamlar,

    meta tag leri oluşturmak için veritabanında ayrı bir tag sütunu açıp herşeye tag vermeye üşendim o yüzden şöyle bir kod dizisi varmıdır diye merak ediyorum.

    yazının olduğu sütundaki bilgileri çekip bunlardan birbirinin aynısı olanları eleyip araya virgüller koyarak yazsa? (mesela bugün hava çok güzel ama hava her zaman böyle olmuyor cümlesini bugün, hava, çok, güzel, ama, her, zaman, böyle, olmuyor gibi)
  • 23-09-2012, 21:37:22
    #2
    Tüm paragrafın her kelimesini explode edin önce, ardından oluşan dizi değişkeni array_unique ile tekrarlayan değerlerden temizleyin. Sonra da implode ile birleştirin.
  • 23-09-2012, 21:56:14
    #3
    bayGaReZ adlı üyeden alıntı: mesajı görüntüle
    Tüm paragrafın her kelimesini explode edin önce, ardından oluşan dizi değişkeni array_unique ile tekrarlayan değerlerden temizleyin. Sonra da implode ile birleştirin.
    benim için biraz fazla teknik oldu

    $sorgu['Yazi'];

    gibi bir sorguyla bu yazıların geldiğini varsayarsak kısa bir kod örneği göstermeniz mümkün mü? üzerinde çalışayım?
  • 23-09-2012, 22:07:03
    #4
    <?php
    	$degisken = 'Ben ben isem, sen sensin. Sen sen isen de ben benim.';
    	echo asagidanYukaridanYolunSonuGorunuyor($degisken);
    	function asagidanYukaridanYolunSonuGorunuyor($s) {
    		$s = strtolower($s);
    		$s = preg_replace('/[^%a-z0-9 _-]/', '', $s);
    		$s = explode(" ", $s);
    		$s = array_unique($s);
    		$s = implode(", ",$s);
    		return $s;
    	}
    // Çıktı : ben, isem, sen, sensin, isen, de, benim
    ?>
  • 23-09-2012, 23:16:08
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    function virgulle($yazi){
    $yazi = explode yazi(" ",$yazi);
    array_unique($yazi);
    $yazi = implode(",",$yazi);
    }
    
    $virgullenecek = virgulle("bugün hava çok güzel");
    İstediğinin karşılığı bu olsa gerek.
  • 24-09-2012, 00:11:27
    #6
    Birden fazla cümleden oluşuyorsa ve içerisinde noktalama işaretleri de varsa virgül, nokta, ünlem, soru işareti gibi.. O zaman bu hali pek uygun olmaz diye yukarıdaki gibi yapmıştım ben ama aynı kapıya çıkıyor tabi ki.

    erginkeles adlı üyeden alıntı: mesajı görüntüle
    function virgulle($yazi){
    $yazi = explode yazi(" ",$yazi);
    array_unique($yazi);
    $yazi = implode(",",$yazi);
    }
    
    $virgullenecek = virgulle("bugün hava çok güzel");
    İstediğinin karşılığı bu olsa gerek.
  • 24-09-2012, 02:20:45
    #7
    bayGaReZ adlı üyeden alıntı: mesajı görüntüle
    Birden fazla cümleden oluşuyorsa ve içerisinde noktalama işaretleri de varsa virgül, nokta, ünlem, soru işareti gibi.. O zaman bu hali pek uygun olmaz diye yukarıdaki gibi yapmıştım ben ama aynı kapıya çıkıyor tabi ki.
    Senin yaptığın kapsamlı ve tam bir çözüm. Benimki ise işin kolayına kaçan, basit, soru işaretleri olan bir çözüm. Arkadaş seninkini kullanmalı.
  • 24-09-2012, 02:39:16
    #8
    Kimlik doğrulama veya yönetimden onay bekliyor.
    by garezin kodundan devam ederek tam olarak yapmak istediğin şey böyle sanırım, bunu gerekli yerleri değiştirip bir deneyebilirsin. bu kodu bir dene bakalım istediğin şey bumu. eğer sabit bir değeri aramıyorsan RLIKE veya LIKE kullanabilirsin.

    $degisken = 'Ben ben isem, sen sensin. Sen sen isen de ben benim.'; 
        $hazirlanmisi = asagidanYukaridanYolunSonuGorunuyor($degisken);
    
        $query = "select `id` from yazilar where `baslik` IN ($hazirlanmisi) order by `id` desc";
    
        $q = mysql_query($query);
        while($l = mysql_fetch_assoc($q))
        {
              echo $l['baslik']."<br />";
        }
    
        function asagidanYukaridanYolunSonuGorunuyor($s) { 
            $s = strtolower($s); 
            $s = preg_replace('/[^%a-z0-9 _-]/', '', $s); 
            $s = explode(" ", $s); 
            $s = array_unique($s); 
            $text = "";
            foreach($s as $ss)
            {
                   $text .= "'$ss',";
            }
            $text = substr($text, 0, strlen($text)-1);
            return $text;
            //texti in de kullanmak için 'deger','deger','deger' şekline getirdik. tabi açık vermek istemiyorsak burada escape kullanmamız gerek. eğer kullanıcının etkileşime geçebildiği, arama vb bir şeyde kullanılacaksa escapede gerekli
        }
  • 24-09-2012, 09:14:21
    #9
    Öncelikle tüm cevaplar için teşekkür ederim.

    bayGaReZ'in kodları şu şekilde kullandım

    <?
    
    $query = mysql_query("select * from Blog where ID='1'");
    
    $sonuc=mysql_fetch_array($query);
    
        $degisken = $sonuc['Yazi']; 
        echo Ayiklama($degisken); 
        function Ayiklama($s) { 
            $s = strtolower($s); 
            $s = preg_replace('/[^%a-z0-9 _-]/', '', $s); 
            $s = explode(" ", $s); 
            $s = array_unique($s); 
            $s = implode(", ",$s); 
            return $s; 
        } 
    
    ?>
    <? echo $s ?>
    tam istediğim sonucu verdi ama türkçe karakterlerde hata var.

    hibirimiz, dierinden,

    hiçbirimiz diğerinden olması lazımdı

    buna nasıl bir çözüm olabilir?