我需要替换 SVG 文件中的某些颜色
以下是我到目前为止所拥有的,但它并没有取代任何东西,也没有给出错误。
有人可以帮忙解决正则表达式部分吗?
// Define Default Color Name and Hexcode values
$colorsArray = array(
'red' => 'FF0000',
'orange' => 'FF5000',
'yellow' => 'FFF200',
// ...
);
$svgImageName = 'my-svg-file.svg';
$svgRawString = file_get_contents($svgImageName);
foreach ($colorsArray as $colorName => $colorCode) {
$svgOutput = preg_replace(
'/#([0-9a-f]{6})/',
'#'.$colorsArray[$newColorName],
$svgRawString
);
}
echo '<textarea rows="20" cols="100">' .$svgOutput. '</textarea><hr>';
这是我的 SVG 文件的示例输出...
<path fill="#FFFFFF" d="M2129.319,78.436c-8.375,0-15.165,6.79-15.165,15.165v748.803c0,8.375,6.79,15.165,15.165,15.165
s15.165-6.79,15.165-15.165V93.601C2144.484,85.225,2137.694,78.436,2129.319,78.436z"/>
<path fill="#FF0000" d="M183.587,78.436c-8.375,0-15.165,6.79-15.165,15.165v748.803c0,8.375,6.79,15.165,15.165,15.165
s15.165-6.79,15.165-15.165V93.601C198.752,85.225,191.963,78.436,183.587,78.436z"/>