我尝试加载一个简单的文本文件,其中每一行都有一个名称,并用这些名称创建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());
}
?>
答案 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());
}
?>