2012-03-20 4 views
1

私たちのWebアプリケーションはSVGファイルをサーバーに保存していますので、サーバー側のSVGファイルからJSON出力を取得します。 私はPETESAIA's SVG to JSONのPHPプログラムを調べました。 しかし、出力がnullまたは空の配列です。サーバー側のSVGへのSVG?

<?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ファイルは同じディレクトリにあります。

誰も私がこれと一緒に間違っていると示唆することはできますか?

またはサーバー側

EDIT上のJSONへのSVGの任意の代替:@halferと我々はSVG(JSONに変換)のサーバー側の検証を必要とする理由についての彼のクエリに応答して。 私たちは、ユーザーが特定のアクションを実行し、出力がサーバーに送信され、サーバーに保存され、Webサイトに掲載されるクリーンサイドSVG(RaphaelJs)Webアプリケーションを提供しています。出力ファイルがウェブサイトに掲載される前に検証されていることを確認したい。このためには、ユーザーがアプリケーションで設定されたルールを乱用しないように、サーバー側の検証が必要です。

Raphael.serializeは、クライアント側でSVGをJSONに変換するため、ユーザーが悪用する可能性があるため使用できません。そこで、SVGドキュメントを文字列としてサーバー側に送信します。

+0

あなたのユースケースは何ですか?サーバー上にSVGドキュメントを保持していて、ブラウザ上でSVGドキュメントをレンダリングしたいのですか?もしそうなら、Raphaelや何かを使ってAJAX経由で直接レンダリングすることはできませんか? – halfer

+0

上記のコードに関する通知とすべてのエラー報告を有効にしましたか?btw?たぶん、追跡が必要なバグレットがありますか? – halfer

+0

はい、私たちのSVGドキュメントはサーバー上にありますが、ブラウザに戻す必要はありません。いくつかの検証目的のためにSVGのJSONを使用する必要があります。 –

答えて

1

Node.jsをサーバーにインストールできる場合は、fabric.jsを使用してSVGを解析し、そのオブジェクトをJSONとしてエクスポートすることができます。

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

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

+0

残念ながら、Node.jsをインストールすることはできません。可能であれば、他のソリューションを参照してください、PHPベースのソリューションが最適だろう –

0

スクリプトは私のローカルホストサーバー上で非常に細かい走ったが、私は二重引用符は、あなたが持っていたマークと私には、文字列の引用符のように見える私のメモ帳++からのものと交換削除する必要があります。解決策がまだ見つからなかった場合に役立ちます。