【发布时间】:2012-03-20 02:42:03
【问题描述】:
如何只替换 H1 背景图片?这是我的 CSS:
h1 a {
margin: 0 auto;
display: block;
background: url('http://mywebsite.com/img/old-logo.png') no-repeat;
}
这是我的 preg_replace 代码:
$document = preg_replace('/background[-image]*:[\s]*url\(\'?([^\'\)]+)\'?\)/', "background: url('http://mywebsite.com/img/new-logo.png')", $document);
但现在它会替换所有背景图片。
如何解决这个问题?
【问题讨论】:
-
不管插入哪个css规则,用“new-logo”简单地替换“old-logo”不是更合乎逻辑吗?
-
为什么不简单:
str_replace("old-logo.png", "new-logo.png", $cssstr);或str_replace("/img/old-logo.png", "/img/new-logo.png", $cssstr); -
徽标的目录在不断变化,所以这不是一个选项。
标签: php html css regex preg-replace