preg_replace комментарии CSS?

Я работал над Системой электронного документооборота несколько лет назад, и мы сделали в значительной степени что Gamecat и предложенный wic.

таким образом, присвойте каждому изображению уникальный идентификатор и использование что получить относительный путь к файлу изображения. Мы использовали MOD, подобный тому, какой предложенный wic, но мы позволили 1 024 папки/файла на каждом уровне с 3 уровнями, таким образом, мы могли поддерживать файлы 1G.

Мы сняли изоляцию с расширения из файлов как бы то ни было. Записи DB содержали Тип MIME, таким образом расширение было не нужно.

я не рекомендовал бы хранить полный URL в записи DB, только идентификатор Изображения. При хранении URL, Вы не можете переместить или реструктурировать свое устройство хранения данных, не преобразовывая Ваш DB. Относительный URL был бы в порядке начиная с того способа, которым можно, по крайней мере, переместить репозиторий образов вокруг, но Вы получите больше гибкости, если Вы просто сохраните идентификатор и получите URL.

кроме того, я не рекомендовал бы позволить прямые ссылки Вашим файлам изображений от сети. Вместо этого предоставьте URL программе серверной стороны (например, Сервлет Java), с идентификатором Изображения, предоставляемым в Запросе URL (http://url.com/GetImage?imageID=1234).

сервлет может использовать тот идентификатор, чтобы искать запись DB, определить Тип MIME, получить фактическое местоположение, проверить на ограничения безопасности, вход, и т.д.

6
задан Doug Avery 17 October 2009 в 00:37
поделиться

2 ответа

Вот решение:

$regex = array(
"`^([\t\s]+)`ism"=>'',
"`^\/\*(.+?)\*\/`ism"=>"",
"`([\n\A;]+)\/\*(.+?)\*\/`ism"=>"$1",
"`([\n\A;\s]+)//(.+?)[\n\r]`ism"=>"$1\n",
"`(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+`ism"=>"\n"
);
$buffer = preg_replace(array_keys($regex),$regex,$buffer);

Взято из препроцессора Script / Stylesheet в Samstyle PHP Framework

См .: http://code.google.com/p/ samstyle-php-framework / source / browse / trunk / sp.php

csstest.php:

<?php

$buffer = file_get_contents('test.css');

$regex = array(
"`^([\t\s]+)`ism"=>'',
"`^\/\*(.+?)\*\/`ism"=>"",
"`([\n\A;]+)\/\*(.+?)\*\/`ism"=>"$1",
"`([\n\A;\s]+)//(.+?)[\n\r]`ism"=>"$1\n",
"`(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+`ism"=>"\n"
);
$buffer = preg_replace(array_keys($regex),$regex,$buffer);
echo $buffer;

?>

test.css:

/* testing to remove this */
.test{}

Вывод csstest.php:

.test{}
13
ответ дан 8 December 2019 в 12:21
поделиться

Я не верю, что вы можете использовать группировку в инвертированном классе символов, как в этом случае. То, что вы собираетесь использовать, называется Утверждения , из которых есть два типа. "взгляд вперед" и "взгляд назад".

Шаблон, который вы ищете в английском, в основном, " косая черта, буквальный подстановочный знак, все, что не сопровождается косой чертой или чем-то другим чем буквальный подстановочный знак, за которым следует косая черта или косая черта, которому не предшествует буквальный подстановочный знак ноль или более раз, буквальный подстановочный знак, косая черта "

<?php

$str = '/* one */ onemore
/*
* a
* b
**/
stuff // single line
/**/';

preg_match_all('#/\*(?:.(?!/)|[^\*](?=/)|(?<!\*)/)*\*/#s', $str, $matches);
print_r($matches);

?>
5
ответ дан 8 December 2019 в 12:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: