Я пишу быстрые preg_replace, чтобы вырезать комментарии из CSS. CSS комментарии обычно имеют следующий синтаксис:preg_replace out комментарии CSS?
/* Development Classes*/
/* Un-comment me for easy testing
(will make it simpler to see errors) */
Так что я пытаюсь убить все между/* и * /, например:
$pattern = "#/\*[^(\*/)]*\*/#";
$replace = "";
$v = preg_replace($pattern, $replace, $v);
Нет кости! Кажется, он задыхается от косых черт, потому что я могу заставить его удалить текст комментариев, если я выберу/и из шаблона. Я попробовал несколько простых моделей, чтобы увидеть, если я мог бы просто потерять косую черту, но они возвращают исходную строку без изменений:
$pattern = "#/#";
$pattern = "/\//";
Любые идеи о том, почему я не могу показаться, чтобы соответствовать этим слэш? Благодаря!
Я не буду предоставлять его в качестве ответа, поскольку он не применим непосредственно к вопросу, но есть некоторые хорошие инструменты, которые уже удаляют/уменьшают содержимое CSS: http://www.minifycss.com/ Просто для те, кто может быть здесь, пытаясь изобретать колесо :) – AvatarKava
Вам лучше использовать парсер. В противном случае вы удалите что-то вроде 'content:"/* ... */"'. – Gumbo
AvatarKara - Я действительно использую этот скрипт: http://code.google.com/p/cssmin/ - но по какой-то причине он не удалял комментарии. Я предположил, что мне придется написать этот бит в себе, но поскольку другие скрипты И ответы не работают, похоже, что что-то странное происходит ... Это для использования в плагине EE, поэтому мне интересно, если строка когда мне передают или окружают, есть некоторые причуды, о которых я не знаю. Спасибо за ссылку! –