• 04-06-2013, 19:06:52
    #1
    Merhabalar;
    1. satır: Var olan ifade="kffğ*0ol08ıukıdo8[abk]prktc[/abk]dfdffş09şhjgbnd;
    2. satır: Olmasını istediğim="<html:/prktc/body>";
    formuna sokmak istiyorum...
    kırmızı gösterilen yerleri temizleyip mavi olan yeri ikinci satırdaki yere ekleyecek.
    Bu ifadeden bir sürü var. Kolay yoldan değiştirmek istiyorum. php olur, javascript olur, c olur, java olur farketmez... Herhangi bir programlama dili ile yapılabilir mi?

    Yani [abk][/abk] arasındaki stringi alıp <html:/buraya/body> ekleyecek... Yalnız ifade de abk dan çok fazla sayıda var (50 tane...). hepsinden bulup ayıklayacak...
  • 04-06-2013, 19:17:45
    #2
    php 'de preg_replace var baktınmı
  • 04-06-2013, 20:18:15
    #3
    Byturkx adlı üyeden alıntı: mesajı görüntüle
    php 'de preg_replace var baktınmı
    Şöyle yaptım ama ilk baştaki kff ile başlayan şeyleri silemedim. nasıl silecek?
    <?php
    $dizge = 'kffğ*0ol08ıukıdo8[abk]prktc[/akk]dfdffş09şhjgbnd';
    $sablonlar[0] = '/abk/';
    $sablonlar[1] = '/akk/';
    $yeniler[1] = 'html';
    $yeniler[0] = 'body';
    echo preg_replace($sablonlar, $yeniler, $dizge);
    ?>
    kffğ ile başlayan şeylerin sırası sayısı sabit değil. kffğ ile de başlamayıp dağınık şekilde... [ simgesine kadar olan şeyleri silecek bir kod lazım açıkçası. ya da [abk] simgesini bulup ondan sonraki dizilimi başka stringlerle birleştirebileceğim bir kod lazım açıkçası.

    türkçesi: [abk] yı bul sonraki 6 karakteri al şu stringde şuraya koy.
    diyebileceğim bir kod.
  • 04-06-2013, 20:22:32
    #4
    webwebweb adlı üyeden alıntı: mesajı görüntüle
    Şöyle yaptım ama ilk baştaki kff ile başlayan şeyleri silemedim. nasıl silecek?
    <?php
    $dizge = 'kffğ*0ol08ıukıdo8[abk]prktc[/akk]dfdffş09şhjgbnd';
    $sablonlar[0] = '/abk/';
    $sablonlar[1] = '/akk/';
    $yeniler[1] = 'html';
    $yeniler[0] = 'body';
    echo preg_replace($sablonlar, $yeniler, $dizge);
    ?>

    <?php
    $dizge = 'kffğ*0ol08ıukıdo8[abk]prktc[/akk]dfdffş09şhjgbnd'; 
    $kes = explode('[abk]',$dizge);
    $kes = explode('[/akk]',$kes[1]);
    echo $kes['0'];
    ?>
  • 04-06-2013, 20:26:58
    #5
    Tam olarak aradığım buydu. Çok sağol.

    Edit:
    bu kod prktc yi veriyor. Çok sağol ama şöyle bir durum var: Daha fazla abk ve akk var ve sadece 1 tane prktc veriyor.
    $dizge = 'kffğ*0ol08ıukıdo8[abk]prktc[/akk]dfıdo8[abk]ytktc[/akk]dfıdo8[abk]trktc[/akk]dfdffş09şhjgbnd';
    olduğunda:
    echo $kes['0'];
    echo $kes['1'];
    echo $kes['2'];..... gibi yazdım diğerlerini vermedi
    hepsi ayrı ayrı prktc, ytktc ve trktc verebilecek şekilde yardım edersen çok sevinirim.
  • 05-06-2013, 02:02:59
    #6
    Üyeliği durduruldu
    <?php 
    $dizge ='kffğ*0ol08ıukıdo8[abk]prktc[/akk]dfıdo8[abk]ytktc[/akk]dfıdo8[abk]trktc[/akk]dfdffş09şhjgbnd';  
    $kes = explode('[abk]',$dizge); 
    for($i=1;$i<(count($kes)-1);$i++)
    {
    	$yeni = explode('[/akk]',$kes[$i]); 
    	foreach($yeni as $b)
    	{
    		echo $b.'<br>'; 
    	}
    }
    ?>
    Buyrun aradığınız böyle bir şey sanırım
  • 05-06-2013, 10:50:56
    #7
    Üyeliği durduruldu
    $dizge = 'kffğ*0ol08ıukıdo8[abk]prktc[/akk]dfdffş09şhjgbnd' ;
    preg_match('#\[abk\](.*?)\[/akk\]#si",$dizge, $çıktı);
    echo 'falan filan'.$çıktı[1].'falan filan';

    edit: cok sayida cekmek icin


    $dizge = 'kffğ*0ol08ıukıdo8[abk]prktc[/akk]dfdffş09şhjgbnd' ;
    preg_match_all('#\[abk\](.*?)\[/akk\]#si",$dizge, $çıktı);
    for($i=1;$i<=count($çıktı);$i++){
    echo 'falan filan'.$çıktı[1][$i].'falan filan';}

    kodda sorun olursa dizgedeki koseli parantezlerden kaynaklidir kod saglam.
  • 05-06-2013, 14:43:28
    #8
    Çok teşekkür ederim arkadaşlar. Sorunum sayenizde çözülmüştür. Çok sağolun.