gpt4 book ai didi

php - preg_replace 掉 CSS 注释?

转载 作者:可可西里 更新时间:2023-11-01 13:36:08 28 4
gpt4 key购买 nike

我正在编写一个快速的 preg_replace 来从 CSS 中删除注释。 CSS 注释通常有这样的语法:

/* Development Classes*/
/* Un-comment me for easy testing
(will make it simpler to see errors) */

所以我试图杀死/* 和 */之间的所有内容,如下所示:

$pattern = "#/\*[^(\*/)]*\*/#";
$replace = "";
$v = preg_replace($pattern, $replace, $v);

没有骰子!它似乎在正斜杠上窒息,因为如果我从模式中取出/s ,我可以让它删除注释文本。我尝试了一些更简单的模式,看看我是否可以去掉斜线,但它们返回原始字符串不变:

$pattern = "#/#";
$pattern = "/\//";

关于为什么我似乎无法匹配那些斜杠的任何想法?谢谢!

最佳答案

这是一个解决方案:

$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);

取自 Samstyle PHP 框架中的脚本/样式表预处理器

参见: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;

?>

测试.css:

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

csstest.php 的输出:

.test{}

关于php - preg_replace 掉 CSS 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1581049/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com