Вопрос:

Почему есть дополнительные пробелы в начале моего файла после того, как я напишу его с помощью PHP?

php html fopen

2770 просмотра

3 ответа

935 Репутация автора

Я пытаюсь создать 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);
Автор: DonJuma Источник Размещён: 13.10.2010 02:26

Ответы (3)


1 плюс

175939 Репутация автора

Решение

Где пустая строка? Если это в конце файла, самым простым решением является удаление закрытия ?>.

На самом деле считается, что многие считают, что закрывающий PHP-тег в файлах, предназначенных для включения только PHP-кода.

Или, как альтернатива, вы пробовали file_put_contents()?

Обновить

Нет очевидного способа, которым код, который вы опубликовали, может привести к пропущению пробелов; Переход 'w'к fopenобрезанию файла, и у вас нет начального пробела в содержимом, которое вы пишете впоследствии. Когда я запускаю свой код, я получаю желаемый результат без каких-либо ведущих пробелов (и дублирует новые строки, как указано в codeaddict):

<?php

header('Content-type: audio/mp3');



header('Content-Disposition: attachment; filename="test"');

readfile("test.mp3");

?>
Автор: meagar Размещён: 13.10.2010 02:30

0 плюса

343897 Репутация автора

Вы используете, \nа также записываете содержимое на разные строки, тем самым создавая две новые строки.

Пример:

echo "a\n
b";

Будет распечатан

a

b

Удалите \nразрывы или разрывы строк, чтобы исправить это.

Автор: codaddict Размещён: 13.10.2010 02:32

0 плюса

1 Репутация автора

Эта проблема заставила меня потратить целый день ... Просто нашла этот ответ, и, честно говоря, я подумал, что невозможно удалить «?» С конца PHP-скрипта, чтобы предотвратить появление фида строк в НАЧАЛЕ мой файл. Но я попробовал - и это работает. Спасибо

Автор: kevinnice Размещён: 07.12.2018 04:31
Вопросы из категории :
32x32