2012-07-09 40 views
5

PHPでSVGファイルを作成し、それをHTMLファイルに組み込みたいとします。ここで私は(this tutorial以下)、これまで持っているものだPHPで生成されたSVGファイルを読み込むにはどうしたらいいですか?

svg.php:

<?php 
header("Content-type: image/svg+xml"); 
?> 
<?xml version="1.0" encoding="iso-8859-1"?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" 
"http://www.w3.org/TR/2001/ 
REC-SVG-20010904/DTD/svg10.dtd"> 

<svg width="310" height="140" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 
    <g style="stroke:black;fill:lightgreen" transform="translate(30,30)"> 
     <rect x="10" y="10" width="100" height="30" style="stroke-width:4"/> 
     <circle cx="170" cy="25" r="20" style="stroke-width:4"/> 
     <line x1="265" y1="10" x2="200" y2="70" style="stroke-width:4"/> 
     <text x="80" y="90" style="font:size: 8">Basic shapes</text> 
    </g> 
</svg> 

index.htmlを

<!DOCTYPE html> 
<html> 
<head> 
<style type="text/css"> 
html,body, #MOSVG { 
    height: 100%; 
    width: 100%; 
    padding:0; 
    margin:0; 
} 
</style> 
</head> 
<body> 
    <object data="svg.php" type="image/svg+xml" id="MOSVG" /> 

</body> 
</html> 

私はindex.htmlを見てみると、私が見るすべては空白ですページ。コンソールに警告/エラーはありません。 Apacheのエラーログ(XAMPPを使用しています)は[Mon Jul 09 14:36:15 2012] [error] [client 127.0.0.1] script 'C:/xampp/htdocs/svgtest/public/svg.php' not found or unable to stat, referer: http://localhost/svgtest/public/となります。彼らは同じディレクトリにいます。

+0

公開は公開されていません。 – Gntem

+0

まだ見つかっていますが、引き続き問題が発生しています。 – SomeKittens

+1

行を削除すると、svgレンダリング – Gntem

答えて

8

GeoPhoenixは私が公式の1ありますように、私は答えにそれを置くだろう考え出し、上記の答え:

あなたはそれがSVGにレンダリング<?xml?>行を削除する場合

PHPを見ることができますshort-open-tag設定(thanks to fvu)のおかげで、(XML宣言ではなく)PHPコードの開始タグとして<?が使用されています。これは簡単に修正され、私はちょうど

<?php echo '<?xml version="1.0" encoding="iso-8859-1"?>';?> 

<?xml version="1.0" encoding="iso-8859-1"?> 

を置き換えこれは、同じ意図した結果を持っており、構文エラーが発生することはありません。

+0

これは「修正」ではなく、そのハックです。 – YemSalat

関連する問題