如何从svg文件中提取高度和宽度

时间:2012-12-31 20:12:07

标签: php svg height width

示例:

<svg width="23" height="22" xmlns="http://www.w3.org/2000/svg">
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
<g>
<title>Layer 1</title>
<path fill-opacity="0" id="svg_1" d="m23,2-20,9.5l22,9" stroke-width="4" stroke="#000000" fill="#ffffff" />
</g>
</svg>

我想提取svg文件的宽度和高度,以便我可以使用canvg进行一些定位。

我知道它是xml,但我无法弄明白。这可能是非常简单的事情,但这是一年中的最后一天,我无法弄明白。

一直在尝试:

PHP SimpleXML

$xml = simplexml_load_file($imageright) or die("Error: Cannot create object");
print_r($xml->getDocNamespaces());echo '</br>';
给我     数组([] =&gt; http://www.w3.org/2000/svg

这也不起作用:

foreach($xml->svg[0]->attributes() as $a => $b)
  {
  echo $a,'="',$b,"\"</br>";
  }

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

你需要的只是

$xml = simplexml_load_file($imageright);
$attr = $xml->attributes();
printf("%s x %s", $attr->width, $attr->height);

输出

23 x 22

Simple Online Demo

答案 1 :(得分:-1)

这是使用awk脚本的简单解决方案。

假定宽度高度始终在第一行。

"分隔线作为字段分隔符,然后获得第二和第四字段。

awk -F '\"' 'NR==1{print $2,$4}' input.svg

输出

23 22