2017-05-30 4 views
0

私は、PHPを使ってhtmlでsvgとして出力を生成しています。これをsvgとしてダウンロードするには、svgイメージとしてダウンロードする必要があります。私がダウンロードをクリックすると、それをsvgイメージとして生成する方法。フォルダーにsvgを生成する方法と、svgファイルとしてPHPを使用して強制的にダウンロードしますか?

foreach($items as $item){ 
    // echo $item->top; 
$top  = str_replace('px', '', $item['top']); 
$left  = str_replace('px', '', $item['left']); 
    echo '<div style="background-color:#fff;width:333.333px;height:500px;">'; 
    echo '<div style="position:absolute;top:'.$top.';left:'.$left.'">'; 
    $svg_element = $item['svg']; 
    echo $svg_element; 
    echo '</div>'; 
    echo '</div>'; 
} 

    // output 
    <div style="background-color:#fff;width:333.333px;height:500px;"><div style="position:absolute;top:235;left:64.0667"> 
<svg width="198" height="132" viewBox="0 0 99 52" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="none"> 
<defs><style>@font-face{font-family: 'Twine';src: url("data:application/font-ttf;charset=utf-8;base64,") 
<g id="0.38592716854139286"><text fill="#000000" stroke="none" stroke- width="0" stroke-linecap="round" stroke-linejoin="round" x="32" y="39" text-anchor="middle" font-size="40.30555555555556" font-family="Twine" data-textcurve="0" data-itemzoom="1 1" itemzoom="0.5 0.3939393939393939"> <tspan dy="0" x="50%">Hello</tspan></text></g> 
+0

あなたがどんな解決策を発見したとして保存ファイルの内容を入れていますか? – Jalpesh

答えて

0

SVGにはdivを使用しないでください。私はdiv要素を取り除き、幅と高さ、背景色でSVGを作成したとの.svg拡張

$op = '<svg width="'.$template_width.'" height="'.$template_height.'">'; 
foreach($items as $item){ 
    // echo $item->top; 
$top  = str_replace('px', '', $item['top']); 
$left  = str_replace('px', '', $item['left']); 
    $op .= str_replace('<svg ', '<svg y="'.$top.'" x="'.$left.'" ', $item['svg']); 

} 
$op .= '</svg>'; 
$filename = '/front_'.time().'.svg'; 
file_put_contents(realpath(dirname(__FILE__)).$filename, $op); 
関連する問題