服务器端的SVG到JSON



我们的web应用程序在服务器上存储SVG文件,我们希望从服务器端的SVG文件中获得JSON输出。我已经研究了PETESAIA的SVG到JSONphp程序。但是我得到的输出是null或空数组。

<?php
require_once “PeachSVG.php”;
$filename = “filename-2012-03-06.svg”;
$json = PeachSVG::convert($filename, $to_json = true);
//$json = convert($filename, $to_json = true);   //also used this one
var_dump(json_decode($json, true));
?>

这个php代码、PeachSVG.php和svg文件位于同一目录中。

有人能告诉我这件事哪里不对吗?

或者服务器端上SVG对JSON的任何替代方案

EDIT:响应@halfer和他关于为什么我们需要SVG(转换为JSON)的服务器端验证的询问。我们有一个cleint端SVG(RaphaelJs)web应用程序,用户可以在其中执行某些操作,输出被发送到我们的服务器并保存在服务器上,然后发布在网站上。我们希望确保输出文件在发布到网站之前经过验证。为此,我们需要进行服务器端验证,以确保用户不会滥用应用程序中设置的规则。

Raphael.serialize无法使用,因为它在客户端将SVG转换为JSON,这可能会被用户滥用。因此,我们将SVG文档作为字符串发送到服务器端。

如果您可以在服务器上安装Node.js,那么您可能可以使用fabric.js来解析SVG,然后将对象导出为JSON。

https://github.com/kangax/fabric.js

http://kangax.github.com/fabric.js/svg_rendering/

您在require_once()函数中犯了一个错误。php文件的路径应该在括号中,如下所示:

require_once("PeachSVG.php");

对于字符串,您似乎使用了不好的双引号。你可能是从某个地方复制的。因为它们是左双引号"(U+201C)和右双引号"(U+201D)。在代码中,它不应该看起来像这样:

“some your string”

但是像这样:

"some your string"

您的脚本在我的localhost服务器上运行得很好,但我不得不删除您的引号,并将其替换为记事本++中的一个引号,对我来说,它看起来像字符串引号。如果还没有找到解决方案,希望这会有所帮助。

最新更新