• 27-06-2013, 01:31:29
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Arkadaşlar örnek bir metin veriyorum:
    Alıntı
    Bu bir &6tes&7t &ryazısı
    Bunun çıktısı, yazı olarak:
    Bu bir test yazısı
    Kod olarak:
    Bu bir <font color="yellow">tes</font><font color="red">t </font>yazısı
    Şeklinde olmasını istiyorum. &0 den &9 a kadar yazıda renk değiştiriyor. &r varsayılana çeviriyor, &l koyu, &i italik yazdırıyor. Örnek metinde ki yazıları çıktıda ki gibi nasıl çevirebilirim?
  • 27-06-2013, 01:36:51
    #2
    interkolik adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar örnek bir metin veriyorum:

    Bunun çıktısı, yazı olarak:
    Bu bir test yazısı
    Kod olarak:
    Bu bir <font color="yellow">tes</font><font color="red">t </font>yazısı
    Şeklinde olmasını istiyorum. &0 den &9 a kadar yazıda renk değiştiriyor. &r varsayılana çeviriyor, &l koyu, &i italik yazdırıyor. Örnek metinde ki yazıları çıktıda ki gibi nasıl çevirebilirim?
    $sonaciklama = 'Bu bir &6tes&7t &ryazısı';
    			$şablon[] = '@&6(.*?)&@si';
    			$yenisi[] = '<font color="yellow">${1}</font>';
    			$sonaciklama = preg_replace($şablon, $yenisi, $sonaciklama);
    Gibi bir işlemle değiştirebilirsiniz. Burda regex işlemlerini kendinize göre değiştirmeniz gerekiyor..
  • 27-06-2013, 01:50:10
    #3
    Bu benimde aklıma geldi lakin denersen göreceksin &7'nin and işareti kayboluyor ve sadece sarı renk oluşuyor kırmızı oluşmuyor...
    Çıktı:
    Bu bir <font color="yellow">tes</font>7t &ryazısı
    Edit
    Denerken yaptım bişeyler:
    <style>
    body {
    	color:#FFF;
    	background-color:#333;
    }
    </style>
    <pre>
    <?php
    header('Content-type: text/HTML; charset=utf-8');
    include "dom.php";
    ini_set('display_errors','0');
    ini_set('max_execution_time',0);
    $ar11 = array("black","#0000AA","#00AA00","#00AAAA","#AA0000","#AA00AA","#FFAA00","#AAAAAA","#55555","#5555FF","#55FF55","#55FFFF","#FF5555","#FF55FF","#FFFF55","#FFFFFF");
    $ar12 = array("§0","§1","§2","§3","§4","§5","§6","§7","§8","§9","§a","§b","§c","§d","§e","§f");
    $ar21 = array("§l","§o");
    $ar22 = array("</b></i></span><b>","</b></i></span><i>");
    $ar31 = array("§k","§m","§n");
    $ar32 = array("Obfuscated","line-through","underline");
    //$test = utf8_encode(file_get_contents("C:\Users\SameD.SOLOYADEVAM\AppData\Roaming\.minecraft\chatlog.txt"));
    $test = "§lBu §2bir §6tes§7t §r§myazı§rsı";
    for ($i=0; $i<17; $i++){
    	$test = str_replace($ar12[$i],'</font><font color="'.$ar11[$i].'">',$test);
    }
    $test = str_replace(array("§r",PHP_EOL),array("</b></i></font></span>","</b></i></font></span>".PHP_EOL),$test);
    $test = str_replace($ar21,$ar22,$test);
    for ($i=0; $i<4; $i++){
    $test = str_replace($ar31[$i],'</span><span style="text-decoration:'.$ar32[$i].'">',$test);
    }
    
    echo $test;
    ?>
    </pre>
    kod kalabalığı oluyor çıktıda ama görüntüde istediğim oluyor (:
  • 27-06-2013, 15:01:17
    #4
    interkolik adlı üyeden alıntı: mesajı görüntüle
    Bu benimde aklıma geldi lakin denersen göreceksin &7'nin and işareti kayboluyor ve sadece sarı renk oluşuyor kırmızı oluşmuyor...
    Çıktı:
    Bu bir <font color="yellow">tes</font>7t &ryazısı
    Edit
    Denerken yaptım bişeyler:
    <style>
    body {
    	color:#FFF;
    	background-color:#333;
    }
    </style>
    <pre>
    <?php
    header('Content-type: text/HTML; charset=utf-8');
    include "dom.php";
    ini_set('display_errors','0');
    ini_set('max_execution_time',0);
    $ar11 = array("black","#0000AA","#00AA00","#00AAAA","#AA0000","#AA00AA","#FFAA00","#AAAAAA","#55555","#5555FF","#55FF55","#55FFFF","#FF5555","#FF55FF","#FFFF55","#FFFFFF");
    $ar12 = array("§0","§1","§2","§3","§4","§5","§6","§7","§8","§9","§a","§b","§c","§d","§e","§f");
    $ar21 = array("§l","§o");
    $ar22 = array("</b></i></span><b>","</b></i></span><i>");
    $ar31 = array("§k","§m","§n");
    $ar32 = array("Obfuscated","line-through","underline");
    //$test = utf8_encode(file_get_contents("C:\Users\SameD.SOLOYADEVAM\AppData\Roaming\.minecraft\chatlog.txt"));
    $test = "§lBu §2bir §6tes§7t §r§myazı§rsı";
    for ($i=0; $i<17; $i++){
    	$test = str_replace($ar12[$i],'</font><font color="'.$ar11[$i].'">',$test);
    }
    $test = str_replace(array("§r",PHP_EOL),array("</b></i></font></span>","</b></i></font></span>".PHP_EOL),$test);
    $test = str_replace($ar21,$ar22,$test);
    for ($i=0; $i<4; $i++){
    $test = str_replace($ar31[$i],'</span><span style="text-decoration:'.$ar32[$i].'">',$test);
    }
    
    echo $test;
    ?>
    </pre>
    kod kalabalığı oluyor çıktıda ama görüntüde istediğim oluyor (:
    O zaman aldığın kodu tekrar geri koy yani şöyle

    $sonaciklama = 'Bu bir &6tes&7t &ryazısı';
    $şablon[] = '@&6(.*?)&@si';
    $yenisi[] = '<font color="yellow">${1}</font>';
    $sonaciklama = preg_replace($şablon, $yenisi, $sonaciklama);

    Şeklinde & kayboluyorsa

    $yenisi[] = '<font color="yellow">${1}</font>& yaptığında gene istediğini alabilirsin söylediğinde bir yöntem ama ne kadar az kod çok iş mantığında benim söylediğimi türetmek daha fazla işlevsellik kazandırabilir.. Tabi karar senin..';
  • 28-06-2013, 00:39:23
    #5
    Sayın Big_Turk senin söylediğinde daha fazla kod harcanacağını düşünüyorum. Lütfen benim için bir örnek yapar mısın? Ama sadece 6. renk için değil tüm renkler ve stiller için. Toplam 21 desen var. Bunu istiyorum çünkü eğer kodlama azalırsa işlem hızı artar. Bu işlem her saniye yenileniyor... Ama açıkcası 21 desen yapıp metine uygulamak (ki bu metin 1 satır değil yaklaşık 200 satır) yorucu olacak diye düşünüyorum. Ve şu da göz önünde tutulmalıdır ki &r olduğunda &r den sonra ki metin sıfırlanacak yani ne rengi ne stili değişmeyecek. Ayrıca şu şekilde satırlar var:
    Test yazı&7sı
    Şimdi burada & aralığı yok dolayısıyla örnek verdiğin desen bir sonraki satırıda olaya dahil edecek. Oysaki renklendirme ve sitillendirme her satır için farklı.
    Çok düşündüm bunun üzerinde ve benim yaptığım örnekten daha az kod ile yapılabilecek bir sistem olduğuna inanmıyorum.