• 30-12-2015, 02:23:56
    #1
    Merhaba arkadaşlar konuya ilişkin eklenen etiketleri konu altında değil de konu içinde linklendirmek istiyorum.

    Şöyle ki;

    Konu içeriğimiz:
    Çin'de Dragon televizyonunda işe başlayan "Şiaoice" adlı yapay zekâlı robot hava durumu programını sundu. Şinhua ajansının haberine göre, robotun insan sesine yakın bir ses tonunu kullandığı program, büyük ilgi topladı.

    Etiketler:
    Çin, robot

    -----------------------------

    Aslında istediğimi yaptım, konu içinde etiketler içinde yer alan ilk kelimeyi link yapıyorum; ama ilgili kelimenin konu içinde geçtiği ilk yer bir html etiketinin özellik değeriyse sorun oluyor.

    Örneğin yukardaki örnekten hareketle "Çin" kelimesinin metin içinde kullanıldığı ilk yer <img src="xx" alt="Çin'de bla bla vs vs"> gibi ise img etiketinin alt değerine bir tag eklenmeye çalışıyor.

    İstenen:
    Konu metni içindeki attribute değeri olmayan ve başlık tagları arasında yer almayan (h2,h5 gibi) ilk Çin kelimesine link oluşturmak.

    Şu an kullandığım kodlar:
    // FONKSİYON
    function tag_to_preg_old( $x ){ return "/".$x."/"; }
    function tag_to_preg_new( $x ){ global $set; return "<a href=\"".$set["siteurl"]."/news/list?tag=".urlencode($x)."\" title=\"".$x." haberleri\">".$x."</a>"; }
    function tag_import_in_content( $data, $tag_str ){
    	$tag_arr	= array_map( "trim", explode(",", $tag_str) );
    	$preg_old	= array_map( "tag_to_preg_old", $tag_arr );
    	$preg_new	= array_map( "tag_to_preg_new", $tag_arr );
    	return preg_replace( $preg_old, $preg_new, stripslashes($data), 1);
    }
    // KULLANIMI
    echo tag_import_in_content( $q["content"], $q["tags"] );
    // $q["tags"] değişkeninde birbirinden virgülle ayrılmış etiketler var.
    Yardımcı olursanız sevinirim.
    İyi çalışmalar.
  • 30-12-2015, 03:48:11
    #2
    @codeksper;

    http://stackoverflow.com/questions/9...o-links-in-php bu yazı belki işinize yarayabilir.

    $string = 'This text contains many keywords, but also formated <a href="http://www.keywords.com/keywords" title="keywords">keywords</a>.';
    $string = preg_replace("/(?<![#>\".\/])keywords/i", "<a href=\"http://www.keywords.com/keywords\" title=\"keywords\">$0</a>", $string);
    echo $string;
    
    // outputs: This text contains many <a href="http://www.keywords.com/keywords" title="keywords">keywords</a>, but also formated <a href="http://www.keywords.com/keywords" title="keywords">keywords</a>.
  • 30-12-2015, 13:47:53
    #3
    @yasarkemaldag;
    Henüz yapamadım ama uğraşıyorum, muhtemelen işime yarayacak hocam. Teşekkürler.