使用php和regex将@import更改为php include?

时间:2012-08-28 01:45:58

标签: php regex str-replace

很长很短的故事,我基本上试图使用正则表达式(或者甚至是字符串替换)来改变

@import url('narf.css');

<?php include('narf.css'); ?>

到目前为止,我已经提出了这个问题,但它没有关闭PHP标记....

$var =  str_replace('@import url', '<?php include', $var);

除此之外,我有点卡住了。我在正则表达式语法上是可怕的,我尝试或试图查找的所有内容都让我走上了死路。

任何帮助都将超过赞赏。

1 个答案:

答案 0 :(得分:2)

$var = preg_replace('/@import url\(([^)]+)\);/', '<?php include $1; ?>', $var);

要打破它:

  1. @import url\( - 字面上匹配 @import url(
  2. ([^)]+) - 将括号内的所有内容捕获到第一个反向引用中。
  3. \); - 字面上匹配);
  4. 如果你在某处有一些空白,你也必须考虑到这一点......