用php创建了很多svg

时间:2014-07-16 19:44:42

标签: php svg mamp

我尝试加载一个简单的文本文件,其中每一行都有一个名称,并用这些名称创建svg。现在如果那些svg是空的并不重要,我对获取文件更感兴趣。

我现在在Mac上使用MAMP。如果我运行此脚本,那么我没有看到任何文件出现。我做错了什么,还是我朝错误的方向看? 如果我加载文件,我确实看到了一个错误,但似乎是我快速阅读。

请帮忙。

<?php

error_reporting(-1);

$codes = file('someFile.txt');


foreach ($codes as $code) {

    ob_start();


echo '<?xml version="1.0" encoding="utf-8"?>';

?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     width="2075px" height="775px" viewBox="0 0 2075 775" enable-background="new 0 0 2075 775" xml:space="preserve">

<?php

    }

?>
</svg>
<?php 

    file_put_contents("out/$code.svg", ob_get_clean());

}

?>

1 个答案:

答案 0 :(得分:0)

你有几个问题:

$codes应该是array,因为您尝试在foreach循环中使用它。下一个问题是次要问题,那就是你有一个太多的右括号}。这可以通过删除您拥有的中间<?php代码来解决:

<?php

error_reporting(-1);

$codes = array('someFile','someFile2');

foreach ($codes as $code) {
    ob_start();

echo '<?xml version="1.0" encoding="utf-8"?>';
?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     width="2075px" height="775px" viewBox="0 0 2075 775" enable-background="new 0 0 2075 775" xml:space="preserve">
</svg>

<?php
    file_put_contents("/out/".$code.".svg", ob_get_clean());
}   
?>