• 05-12-2015, 11:37:11
    #1
    Merhaba.
    Regex konularından hiç anlamıyorum.

    Elimde şu şekilde bir kod var:
    ......
    .....
       <div id='div1'>
            <div class="div2" style="opacity: 0;">
                <a href="değişken link" class="resim" target="_blank">
                    <img src="../1_2075120.jpg">
                    <div class='icon1'></div>
                    <div class='icon2'></div>
                </a>
                <div class="div3">content</div>
            </div>
        </div>
    ......
    .....
    Bu kodu preg_replace ile değiştirmek istiyorum.
    <div id='divyeni'>
    </div>
    şekline nasıl dönüştürebilirim?
  • 05-12-2015, 23:35:41
    #2
    masumm adlı üyeden alıntı: mesajı görüntüle
    Merhaba.
    Regex konularından hiç anlamıyorum.

    Elimde şu şekilde bir kod var:
    ......
    .....
       <div id='div1'>
            <div class="div2" style="opacity: 0;">
                <a href="değişken link" class="resim" target="_blank">
                    <img src="../1_2075120.jpg">
                    <div class='icon1'></div>
                    <div class='icon2'></div>
                </a>
                <div class="div3">content</div>
            </div>
        </div>
    ......
    .....
    Bu kodu preg_replace ile değiştirmek istiyorum.
    <div id='divyeni'>
    </div>
    şekline nasıl dönüştürebilirim?
    $yazi = preg_replace("#<div id='div1'>.*</div>#si", "<div id='divyeni'></div>", $yazi);
    dener misiniz?
  • 06-12-2015, 11:15:26
    #3
    Mert50356 adlı üyeden alıntı: mesajı görüntüle
    $yazi = preg_replace("#<div id='div1'>.*</div>#si", "<div id='divyeni'></div>", $yazi);
    dener misiniz?
    Bu şekilde iki sebepten dolayı çalışmaz.
    1. Sona koyduğunuz div sayfanın en sonundaki div ile,
    2. En başa koyduğunuz <div id='div1'> de sayfanın en başındaki ile eşleşir, sayfanın büyük bir çoğunluğunu kaybetmiş olursunuz.

    Ek olarak content bölümünün içerisinde de div'ler yer alabilir. Yani belirsiz sayıda div var kodunuzda.

    Bunu en kolay dom parserlar ile yapabilirsiniz, ancak dom parser'dan kodunuz çıktığında kodlar tamamiyle değişmiş olur, kod geri çekilmek istendiğinde parser kodu yeniden üretir.

    Recursive bir regex yazılması gerekiyor, bu nasıl yazılabilir ben de araştırıyorum, bilmiyorum.
  • 07-12-2015, 09:40:24
    #4
    Cevaplarınız için çok teşekkür ederim.
    Ama @reddoc yazdığı gibi daha farklı bişeyler yapmak gerekiyor sanırım.