public static function dirs($code, $data) {
$pattern = '/\[\[\s*@([^\(]+)\(([^\)]+)\)\s*\]\]([^\[]+)\[\[\s*@([^\(]+)\(#end\)\s*\]\]/i';
return preg_replace_callback($pattern, function($value) use($data) {
if($value[1] == 'times') {
if (!empty($value[3])) {
$value[3] = self::dirs($value[3], $data);
}
return str_repeat($value[3], $value[2]);
}
}, $expression);
}
Когда вы работаете с внешним JS (то есть не встроенным в файл SVG), если у вас встроенные SVG, вы можете выбрать его как любой другой DOM-элемент. Если вы используете вы можете выбрать его через contentDocument.
window.onload=function() {
var object = document.getElementById("logoObject");
var svgDocument = object.contentDocument;
var svgb1 = svgDocument.getElementsByClassName("firstb");
var svgb2 = svgDocument.getElementsByClassName("secondb");
svgb1[0].setAttribute("fill", "yellow");
svgb2[0].setAttribute("fill", "red");
};