Как загрузить SVG-файл, который был сгенерирован с помощью PHP?

Я хочу создать SVG-файл с PHP, а затем включить его в файл HTML. Вот что я до сих пор (после этого урока )

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/ . Они находятся в одном каталоге.

GeoPhoenix ответил выше, я подумал, что я отвечу на этот вопрос так, чтобы был официальный:

если вы удалите строку <?xml?> она отобразит svg

PHP может видеть <? как открывающий тег для PHP-кода (а не объявления XML), благодаря настройке коротких открываемых тегов ( благодаря fvu ). Это простое исправление, я просто заменил

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

с

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

Это имеет тот же намеченный результат и не вызывает синтаксических ошибок.