* / PHP / * yorumlarla / / yorum değiştirilmesi

2 Cevap php

Ben (özel bir sözdizimi ile) dosyaları (evet, onlar benim fikir) CSSX kullanan PHP CSS jeneratör oluşturma. Bir özelliği 'kısa yorumlar' olduğunu:

body
{
    font-family: Georgia; //I really like this font!
}

Şimdi bir / * ... * / yorum Bu açıklamayı değiştirmek istiyorum, bu yüzden çıktı bu gibi:

body
{
    font-family: Georgia; /*I really like this font!*/
}

Bunu nasıl yapabilirim? Teşekkürler,

P.S. The complete CSSX file is read into one string variable.
P.P.S This q is answered. To fix the url('//server/etc.cssx') problem, use this:

$file =  preg_replace('~[^"\'\(]//([^\r\n]*)[^"\'\)]~', '/*$1*/', $file);

2 Cevap

Bir regexp hile yapmak gerekir:

$str = preg_replace('_//(.*)$_m', '/*$1*/', $str);

Bu hesap alıntı dizeleri içine almayacağız - Senin gibi çılgınca bir şey kullanıyorsanız

background-image: url('//my-server/my.jpg');

then it's going to think that's a comment. If this is a problem then you're better off writing a proper parser.

Greg'in ifadesi iki sorun vardır: Birincisi, 'm' ve '$' ikincisi ise taşıma (durumunda sistem bunları kullanır) doğru döndürür işlemez, gereksizdir.

Daha iyi bir ifade gibi görünüyor

 preg_replace('~//([^\r\n]*)~', '/*$1*/', $str);