• 06-11-2013, 19:22:49
    #1
    Dostlar php preg_replace() yazılacak. Tek satır ile halledilmeli

    Konu;
    Bir css dosyası okunacak. Dosyada background: url() şeklinde satırlar var.

    background: url(img/back.gif)
    background: url(http://adres.com/back.gif)
    background: url("http://adres.com/back.gif")
    background: url('http://adres.com/back.gif')


    Bunun gibi çeşitli url()'ler olabilir. Tek istediğim şu;

    background: url(img/back.gif) => background: url(../img/back.gif) şeklinde yazılsın. Diğer satırlar bu regex'ten etkilenmesin

    Yapabilen arkadşalar ücreti pm atarlarsa sevinirim

    background: url(img/back.gif)
    background: url(http://adres.com/back.gif)
    background: url("resim/a.gif")
    background: url('http://adres.com/back.gif')
    background: url("herhangibirdeger/a.gif")
    istediğim:

    background: url(../img/back.gif)
    background: url(http://adres.com/back.gif)
    background: url("../resim/a.gif")
    background: url('http://adres.com/back.gif')
    background: url("../herhangibirdeger/a.gif")
  • 06-11-2013, 19:48:59
    #2
    <?php
    
    $text = "background: url(img/back.gif)";
    
    $pattern = '/^background: url\(img\/back.gif\)/';
    
    $text = preg_replace($pattern, "background: url(../img/back.gif)", $text);
    
    echo $text;
    
    ?>
  • 06-11-2013, 19:57:52
    #3
    soulmy adlı üyeden alıntı: mesajı görüntüle
    <?php
    
    $text = "background: url(img/back.gif)";
    
    $pattern = '/^background: url\(img\/back.gif\)/';
    
    $text = preg_replace($pattern, "background: url(../img/back.gif)", $text);
    
    echo $text;
    
    ?>

    dostum "back.gif" sadece bir örnekti. bir css dosyasında bir sürü image olabilir.
  • 06-11-2013, 19:59:48
    #4
    Tek istediğim şu deyince öyle yazdım

    Siz

    url(img/

    olanların hepsi

    url(../img/

    böyle mi olsun istiyorsunuz.
  • 06-11-2013, 20:02:13
    #5
    soulmy adlı üyeden alıntı: mesajı görüntüle
    Tek istediğim şu deyince öyle yazdım

    Siz

    url(img/

    olanların hepsi

    url(../img/

    böyle mi olsun istiyorsunuz.
    bunu zaten str_replace() ile yapabiliriz. ama css dosyasının içerisinde url(img/a.gif) de olabilir, url(resim/a.gif) de olabilir, url(http://r10.net/a.gif) de olabilir. hepsini kapsayan bi regex olmalı.
  • 06-11-2013, 20:07:36
    #6
    böyle snırım url taglarının hepsini değiştiriceksiniz?

    $cikti=preg_replace("url(","url(../",$css);
    echo $cikti;
  • 06-11-2013, 20:08:37
    #7
    CodeS adlı üyeden alıntı: mesajı görüntüle
    böyle snırım url taglarının hepsini değiştiriceksiniz?

    $cikti=preg_replace("url(","url(../",$css);
    echo $cikti;
    evet ama bu sefer de url(../http://r10.net/back.gif) oluyor. Bunun da önüne geçilmeli.
  • 06-11-2013, 20:15:45
    #8
    Prostavaryo adlı üyeden alıntı: mesajı görüntüle
    evet ama bu sefer de url(../http://r10.net/back.gif) oluyor. Bunun da önüne geçilmeli.
    bide aşağıdaki gibi deneyin?
    $eski = array('@url(http://(.*?)/@si', 'url(');
    $cikti=preg_replace($eski,"url(../",$css);
    echo $cikti;
  • 06-11-2013, 20:18:28
    #9
    Yardım edenlere tşk ediyorum ama ben ücretli yaptırmak istiyorum. Ayrıca bu o kadar kolay bi regex değil.