我正在尝试创建一个PHP脚本来创建一个文件并将标题添加到该文件中,但该文件必须只是PHP代码,在PHP标记之前没有任何内容。
但由于某种原因,该脚本正在添加一个额外的空白行,但它不起作用。我知道这一点,因为当我手动编辑它并删除它工作的线。这是脚本:
$stringData = "<?php\n
header('Content-type: audio/mp3');\n
\n
header('Content-Disposition: attachment; filename=\"$name\"');\n
readfile(\"$name.mp3\");\n
?>";
$myFile = "matt/$name/download.php";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $stringData);
fclose($fh);
答案 0 :(得分:1)
空行在哪里?如果它位于文件末尾,最简单的解决方案是删除结束?>
。
实际上,许多人认为最好的做法是在仅包含PHP代码的文件中省略关闭的PHP标记。
或者,您是否尝试过file_put_contents()
?
您发布的代码没有明显的方法可能会导致空白空间;将'w'
传递给fopen
会截断文件,并且您之后编写的内容中没有前导空格。当我运行你的代码时,我得到了没有前导空格的所需输出(以及codeaddict所指出的重复换行符):
<?php
header('Content-type: audio/mp3');
header('Content-Disposition: attachment; filename="test"');
readfile("test.mp3");
?>
答案 1 :(得分:0)
您正在使用\n
并在不同的行上写内容,因此创建了两个换行符。
示例:
echo "a\n
b";
将打印
a
b
删除\n
或换行符以解决此问题。