首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >忽略来自str_replace的字符串块

忽略来自str_replace的字符串块
EN

Stack Overflow用户
提问于 2012-04-24 12:04:26
回答 3查看 516关注 0票数 1

我正在用str_replace清理CSS输出,但需要忽略定义了开始和结束的某些字符串块。

忽略所有以:开头的内容:

代码语言:javascript
运行
复制
@media blah(this can be any value) {

要忽略的内容:

代码语言:javascript
运行
复制
  .class {
    property: value;
  }

并以:

代码语言:javascript
运行
复制
}/*ends*/

并在该块之外执行str_replace:

代码语言:javascript
运行
复制
.otherclass {property:value;}

PHP:

代码语言:javascript
运行
复制
$output = str_replace("{", "{\n", $output);
$output = str_replace("}", "}\n", $output);

原因是@media块需要已经正确格式化的适当缩进,并且不应该被简单地返回可读行的str_replace所触及:

代码语言:javascript
运行
复制
 .otherclass {
  property:value;
  }

用PHP怎么说呢?

谢谢

EN

Stack Overflow用户

发布于 2012-04-24 13:36:20

正则表达式不能计数,所以它们通常不适合解析(这就是您正在做的)。也就是说,除非你能限制输入格式超过有效CSS的全集,否则你可能会发现有些情况不能像预期的那样工作。

您还可以尝试完全解析CSS,并使用规则遍历生成的CSS树,以指定如何输出数据。这里显然有一个CSS解析器库:

http://www.phpclasses.org/package/1289-PHP-CSS-parser-class.html

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10291595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档