在用PHP编写文件后,为什么文件开头会有额外的空格?

时间:2010-10-13 14:26:38

标签: php html fopen

我正在尝试创建一个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);

2 个答案:

答案 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或换行符以解决此问题。