Necesito convertir comentarios de una sola línea (//...)
para bloquear los comentarios (/*...*/)
. Casi he logrado esto en el siguiente código; sin embargo, necesito que la función para omitir cualquier comentario de una sola línea ya esté en un comentario en bloque. Actualmente coincide con cualquier comentario de una sola línea, incluso cuando el comentario de una sola línea está en un comentario en bloque.Convertir comentarios de una sola línea para bloquear comentarios
## Convert Single Line Comment to Block Comments
function singleLineComments(&$output) {
$output = preg_replace_callback('#//(.*)#m',
create_function(
'$match',
'return "/* " . trim(mb_substr($match[1], 0)) . " */";'
), $output
);
}
Bueno, no me preocupa si $ x = "alguna cadena // con barras"; se convierte en $ x = "alguna cadena/* con barras inclinadas * /" ;. Eso sería realmente preferido. Por otro lado, agregué los cambios que sugirió y obtuve un error de compilación. Advertencia: preg_replace_callback() [function.preg-replace-callback]: Compilación fallida: la aserción lookbehind no es de longitud fija en el desplazamiento 6 en C: \ wamp \ www \ LessCSS \ Site \ cleaner \ inc \ util.php on line 29 – roydukkey
El look-behind de PHP solo admite aserciones de longitud fija. Eso significa que no se puede escribir una expresión regular que se parezca a un número indefinido de caracteres, lo que excluye el uso de * y?. Más información aquí: http://www.php.net/manual/en/regexp.reference.assertions.php –
gracias por el aviso. debería funcionar ahora. –