• 05-04-2020, 01:24:09
    #1
    selamlar, text içinde # içeren her kelime için kendi kelimesiyle link oluşturuyorum ama kendi kelimesiyle başlayan diğer linke de yine aynı linki veriyor çok karışık gelmiş olabilir. kodu kontrol ederek anlayabilirsiniz.
    <?php
    
    
    $descr="# Bir #güzel size #göz: kırpıyor. Onun adı #vwgolf8 #vw #vwpassat #golf8 #:yakında #türkiye #de: ";
    
    $tag2=explode('#',$descr);
    $tcount=count($tag2)-1;
    
    $descr2=$descr;
    
    $descr2=str_replace("# ","#",$descr2);
    
    for($a=1;$a<=$tcount;$a++){
    
    $tag2=explode("#",$descr);
    
    $tag2=explode(" ",$tag2[$a]);
    
    $descr2=str_replace("#".$tag2[0],"<a href='/tag/".$tag2[0]."'>#".$tag2[0]."</a>",$descr2);
     } echo $descr2;
    yardımcı olabilir misiniz?
  • 05-04-2020, 01:29:23
    #2
    $descr2=str_replace("#".$tag2[0],"<a href='/tag/".$tag2[0]."'>#".$tag2[0]."</a>",$descr2);

    Bu satırdaki $tag2[0] kısımlarını for döngüsündeki mevcut iterasyonla atayabilir misiniz? Php syntaxı bilmiyorum ama sanırım $tag2[$a] olması lazım
  • 05-04-2020, 10:50:12
    #3
    $text = '# Bir #güzel size #göz: kırpıyor. Onun adı #vwgolf8 #vw #vwpassat #golf8 #:yakında #türkiye #de: ';
    preg_match_all('/#(.*?) /', $text, $array);
    for($i=0;$i<count($array[0]);$i++) {
        if(!empty($array[1][$i]))
            $text = str_replace($array[0][$i], '<a href="/tag/'.$array[1][$i].'">'.$array[0][$i].'</a>', $text);
    }
    echo $text;
    şeklinde istediğin sonucu alabilirsin. Kendine göre düzenleme yaparsın