• 17-08-2014, 09:42:26
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    bir metinde önünde # işareti bulunan kelimelere link vermek istiyorum, php ile nasıl yapabilirim kısaca?

    örneğin;
    $metin = "resim yapmayı seviyorum #resmim #sanat";

    bu metinden şu sonucu almak istiyorum:
    <a href="tag/resmim">resmim</a>
    <a href="tag/sanat">sanat</a>

    teşekkürler...
  • 17-08-2014, 09:56:51
    #2
    gzou adlı üyeden alıntı: mesajı görüntüle
    bir metinde önünde # işareti bulunan kelimelere link vermek istiyorum, php ile nasıl yapabilirim kısaca?

    örneğin;
    $metin = "resim yapmayı seviyorum #resmim #sanat";

    bu metinden şu sonucu almak istiyorum:
    <a href="tag/resmim">resmim</a>
    <a href="tag/sanat">sanat</a>

    teşekkürler...
    php regex ifadelere göz atarsan daha verimli olur sizin için.

    <?php
    $metin = "resim yapmayı seviyorum #resmim #sanat";
    echo preg_replace('/#(.*) /i','<a href="tag/{$1}">{$1}<a> ',$metin);
    ?>
    bu sadece ilk tag için link verir. # e göre diziye atıp aynı mantığı kulllandığın takdirde bütün taglara link verilmiş olur.
  • 17-08-2014, 09:59:48
    #3
    sehzadem adlı üyeden alıntı: mesajı görüntüle
    php regex ifadelere göz atarsan daha verimli olur sizin için.

    <?php $metin = "resim yapmayı seviyorum #resmim #sanat"; echo preg_replace('/#(.*) /i','<a href="tag/{$1}">{$1}<a> ',$metin); ?>
    bu sadece ilk tag için link verir. # e göre diziye atıp aynı mantığı kulllandığın takdirde bütün taglara link verilmiş olur.
    teşekkürler, deneyeceğim
  • 17-08-2014, 11:02:00
    #4
    sehzadem adlı üyeden alıntı: mesajı görüntüle
    php regex ifadelere göz atarsan daha verimli olur sizin için.

    <?php
    $metin = "resim yapmayı seviyorum #resmim #sanat";
    echo preg_replace('/#(.*) /i','<a href="tag/{$1}">{$1}<a> ',$metin);
    ?>
    bu sadece ilk tag için link verir. # e göre diziye atıp aynı mantığı kulllandığın takdirde bütün taglara link verilmiş olur.
    kendimi düzelteyim hocam.
    <?php
    $metin = "resim yapmayı seviyorum #resmim #sanat";
    echo preg_replace('/#([a-zA-ZÇŞĞÜÖİçşğüöı]+)/i','<a href="tag/$1">$1<a>',$metin);
    ?>
    bu şekilde kullanırsan döngüye gerek kalmaz. tümü değişir. linklemek istediğin kısımlarda sayı vs varsa regex şartını ona göre değiştirin. iyi çalışmalar
  • 17-08-2014, 11:16:10
    #5
    sehzadem adlı üyeden alıntı: mesajı görüntüle
    kendimi düzelteyim hocam.
    <?php $metin = "resim yapmayı seviyorum #resmim #sanat"; echo preg_replace('/#([a-zA-ZÇŞĞÜÖİçşğüöı]+)/i','<a href="tag/$1">$1<a>',$metin); ?>
    bu şekilde kullanırsan döngüye gerek kalmaz. tümü değişir. linklemek istediğin kısımlarda sayı vs varsa regex şartını ona göre değiştirin. iyi çalışmalar
    evet o şekilde kullanmayı keşfetmiştim bende ama türkçe karakterde sorun oluyordu, o harfleri ve sayılarıda ekledim güzel oldu, teşekkürler.

    edit: japon, rus, arap alfabelerde bu çalışmıyordu... bende ([a-zA-ZÇŞĞÜÖİçşğüöı]+) yerine (S+) kullandım global olarak çalıştı...
  • 17-08-2014, 19:14:43
    #6
    gzou adlı üyeden alıntı: mesajı görüntüle
    bir metinde önünde # işareti bulunan kelimelere link vermek istiyorum, php ile nasıl yapabilirim kısaca?

    örneğin;
    $metin = "resim yapmayı seviyorum #resmim #sanat";

    bu metinden şu sonucu almak istiyorum:
    <a href="tag/resmim">resmim</a>
    <a href="tag/sanat">sanat</a>

    teşekkürler...
    Bunu php ile değil de js ile de yapabilirsiniz. Yani veriyi ham haliyle tutup, göstereceğiniz sayfadaki kodlarla linke çevirebilirsiniz. Daha kullanışlı olacaktır.