Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Url'leri linke dönüştürme?

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

  1. Calimdor

    Calimdor Üye

    Kayıt:
    8 Haziran 2012
    Mesajlar:
    149
    Beğenilen Mesajlar:
    0
    Şehir:
    İzmir
    birkaç tane fonksiyon denedim, ancak her biri mutlaka bir hata verdi. bir türlü de toparlayamadım.
    Acaba çalışır halde bildiğiniz bir dönüştürücü var mı? metin içindeki url'leri otomatik olarak link yapsın?

    (jquery ile ilgili buldum birkaç tane ama kullanım şeklini anlayamadım örneğin; http://stackoverflow.com/questions/37684/how-to-replace-plain-urls-with-links/37687#37687 )

    edit: karşılaştığım hata genelde şu şekilde; sayfadaki tüm içeriği url fonksiyonundan geçirerek sayfaya bastırıyorum. ve bu içerikleri boş basıyor. yani ben bu fonksiyonu her metinde uygulamalıyım ve içinde link varsa tespit edip linke çevirmeli o kısmı, yoksa yazıyı aynen ekrana bastırmalı.
     
  2. SametCilli

    SametCilli Üye

    Kayıt:
    12 Aralık 2006
    Mesajlar:
    234
    Beğenilen Mesajlar:
    0
    Meslek:
    Yazılım Uzmanı
    Şehir:
    İstanbul
    regex
     
  3. Calimdor

    Calimdor Üye

    Kayıt:
    8 Haziran 2012
    Mesajlar:
    149
    Beğenilen Mesajlar:
    0
    Şehir:
    İzmir
    kanka şuan sorunum biraz daha farklı anlatmaya çalışayım;

    function otomatik_url($mesaj){
    $mesaj = preg_replace( "`((http)+(s)?:(//)|(www\.))((\w|\.|\-|_)+)(/)?(\S+)?`i", "<a href=\"http\\3://\\5\\6\\8\\9\">\\5\\6\\8\\9</a>", $mesaj);
    echo $mesaj;
    }

    bu fonksiyon ile linkleri url'lere dönüştürüyorum. Ancak aşağıdaki kodu yazdığımda;

    $icerik = $goster["icerik"];
    $icerik = otomatik_url($icerik);

    $konuid = $goster["id"];
    echo "<li class='ana' id='".$konuid."'>
    <ul>
    <li><a class='ana' href='uye-{$kadiSef}'><b>{$uye}</b></a> - <img src='tema/standart/css/resim/time.png' style='float:none; margin-right:5px;'/>{$time} </li>
    <li><img src='thumb.php?p=tema/standart/resim/{$avatar}&w=32&h=32' /><font>{$icerik}</font>
    ";


    $icerik'teki yazılarımın hepsini li'lerin dışına yazıyor. (li'leri, ul'leri kapatmayı unutmuşsunuz demeyin, kodun bir kısmını yazdım yalnızca. otomatik_url() olmadıgı zaman gayet güzel bir şekilde li içine basıyorum)

    Yani otomatik_url() fonksiyonundan geçirdiğim her şey, li'lerin en dışına, anadivimin en üstüne yazılıyor. Sebebini anlayamadım, çözemedim. css ile mi ilgili diye düşünüp baktım ama alakası yok. resmen li'nin dışına basıyor bu şekilde tüm yazıyı. (linklese de linklemese de farketmez, yazının tümü dışarı gidiyor)

    Bir yardımcı olabilir misiniz?
     
  4. canbag

    canbag Aktif Üye

    Kayıt:
    28 Mart 2009
    Mesajlar:
    497
    Beğenilen Mesajlar:
    0
    Meslek:
    öğrenci
    Şehir:
    IEU MYO BP 1. Sınıf
    fonksiyonunu aşağıdakiyle değiştirip dener misin
    PHP:
    function otomatik_url($mesaj){
    $mesaj preg_replace"`((http)+(s)?//)|(www\.))((\w|\.|\-|_)+)(/)?(\S+)?`i""<a href=\"http\\3://\\5\\6\\8\\9\">\\5\\6\\8\\9</a>"$mesaj);
    return 
    $mesaj
    }