• 04-03-2013, 13:42:06
    #1
    Üyeliği durduruldu
    Selamlar. Bir kelime grubu için tanımlanmış linkler var örneğin

    Metin:


    Merhaba ziyareçi. Sitemizdeki her türlü video sizler için özenle seçildi. bu videoları güvenle izleyebilirsiniz. Benim videolarım bölümünden kendi videonuzu upload edebilirsiniz.


    Bir metin içerisindeki her

    video kelimesi
    <a href="http:/www.birinciadres.com" title="">video</a>


    videolar kelimesi
    <a href="http:/www.ikinciadres.com" title="">videolar</a>

    benim videolarım kelimesi
    <a href="http:/www.ucuncuadres.com" title="">benim videolarım</a>

    şekline dönüşecek.

    Sorun şu ki her 3 kelime de de video kelimesi var ve her 3 nde de olduğu için birinciadres.com u hepsine ekliyor.

    videolar kelimesi de 2 kelimede olduğu için ikinciadres.com u 2 kere ekliyor.

    yani tam kelime aramalı.

    yani

    videolar eşitdeğil videolarım
    video eşitdeğil videolar
    .
    .
    .

    gibi düşünerek bakmalı.

    Ayrıca Videolar kelimesine link verdiğinde o kelimeye video kelimesi için de link vermemeli. Çünkü zaten verdi linki.

    Kelime sayısı sınırsız. Burada sadece 3 kelime olarak belirttim.

    puff. yazması bile sıkıcı


    Birkaç şey denedim ama henüz başarılı olamadım.
  • 04-03-2013, 13:56:41
    #2
    Kelimeleri preg replace ile değiştirmeyi denedin mi ?

    mesela,


    $metin = preg_replace('~ videolar ~',' <a href="birinclink">videolar</a> ',$metin);
    Kelimeyi ararken boşluklu aratıyorum ki videolar kelimesi denk gelmesin ve aynı zamanda <a href almış kelimeleride atlar bu sayede.
  • 04-03-2013, 18:03:21
    #3
    str_replace senin sorununu çözecektir dostum araştır.
  • 04-03-2013, 18:26:49
    #4
    Üyeliği durduruldu
    hocam paylasmistim konuyu kilitlemislerdi mantiksiz bir sekilde. uplayamam onceki konularima bakarsaniz kelime degistirme olayini gorursunuz.
  • 04-03-2013, 20:58:24
    #5
    Üyeliği durduruldu
    Hayko adlı üyeden alıntı: mesajı görüntüle
    Kelimeleri preg replace ile değiştirmeyi denedin mi ?

    mesela,


    $metin = preg_replace('~ videolar ~',' <a href="birinclink">videolar</a> ',$metin);
    Kelimeyi ararken boşluklu aratıyorum ki videolar kelimesi denk gelmesin ve aynı zamanda <a href almış kelimeleride atlar bu sayede.
    cevap için teşekkürler

    kelime boşlukla bitmek zorunda değil hocam.

    videocunuz geldi. gibi bir kelimede videocu için link verildi ise onu koymalı.
    zaten başında veya sonunda bilinen bir karakter olsa (boşluk gibi) o zaman işim kolay olacak. ama yok. olmazsa boşluk filan zorunlu tutacaz artık.

    diaboluss adlı üyeden alıntı: mesajı görüntüle
    str_replace senin sorununu çözecektir dostum araştır.
    mümkün değil hocam.

    WapZap adlı üyeden alıntı: mesajı görüntüle
    hocam paylasmistim konuyu kilitlemislerdi mantiksiz bir sekilde. uplayamam onceki konularima bakarsaniz kelime degistirme olayini gorursunuz.
    bakarım hocam. teşekkürler.
  • 04-03-2013, 22:14:26
    #6
    spider58 adlı üyeden alıntı: mesajı görüntüle
    mümkün değil hocam.
    Mümkün değilmi bende sana gülüyorum hocam daha önce o kod ile yaptığım şeye mümkün değil dedin ya yetti tamam kolay gelsin..
  • 04-03-2013, 23:37:36
    #7
    Şöyle birşey öneriyim o zaman.

    Metinde değişiklik yapılacak kelimeler bellidir illaki.

    Önce bunların hepsini bir diziyi karakter sayısına göre alın.

    Örneğin,

    $kelimeler[] = 'video'; $linkler[] = 'http://site1.com';
    $kelimeler[] = 'videolar'; $linkler[] = 'http://site2.com';
    $kelimeler[] = 'videocunuz'; $linkler[] = 'http://site3.com';
    $kelimeler[] = 'benim videolarım'; $linkler[] = 'http://site4.com';
    Daha sonra for döngüsü ile metni değiştirelim tek tek.


    for($i=0;$i<count($kelimeler);$i++)
    	$metin = str_replace($kelimler[$i],'<a href="'.$linkler[$i].'">'.$kelimler[$i].'</a>',$metin);

    Bu şekilde çalışması lazım.

    diaboluss adlı üyeden alıntı: mesajı görüntüle
    Mümkün değilmi bende sana gülüyorum hocam daha önce o kod ile yaptığım şeye mümkün değil dedin ya yetti tamam kolay gelsin..
    Arkadaş zaten yardım istemiş gülmenizi değil. Bende ilk yazdığınızda mümkün olamayacağını düşünüyordum str_replace ile fakat öyle bir yazdınız ki nasıl yaptığınızı merak ettim
  • 05-03-2013, 00:28:14
    #8
    Hayko adlı üyeden alıntı: mesajı görüntüle
    Şöyle birşey öneriyim o zaman.

    Metinde değişiklik yapılacak kelimeler bellidir illaki.

    Önce bunların hepsini bir diziyi karakter sayısına göre alın.

    Örneğin,

    $kelimeler[] = 'video'; $linkler[] = 'http://site1.com';
    $kelimeler[] = 'videolar'; $linkler[] = 'http://site2.com';
    $kelimeler[] = 'videocunuz'; $linkler[] = 'http://site3.com';
    $kelimeler[] = 'benim videolarım'; $linkler[] = 'http://site4.com';
    Daha sonra for döngüsü ile metni değiştirelim tek tek.


    for($i=0;$i<count($kelimeler);$i++)
    	$metin = str_replace($kelimler[$i],'<a href="'.$linkler[$i].'">'.$kelimler[$i].'</a>',$metin);

    Bu şekilde çalışması lazım.



    Arkadaş zaten yardım istemiş gülmenizi değil. Bende ilk yazdığınızda mümkün olamayacağını düşünüyordum str_replace ile fakat öyle bir yazdınız ki nasıl yaptığınızı merak ettim

    ama bakın Yapmışsınız işte demek mümkün İyi Çalışmalar
  • 05-03-2013, 11:13:07
    #9
    Değiştirilecek kelimeleri en uzundan en kısaya doğru sıralayın. En uzundan başlayarak str_replace ile linkleri ekleye ekleye listenin sonuna doğru ilerleyin.