2010-08-03 18 views
1

Я создаю текстовый файл в php, файл создавался в правильном формате с локального компьютера, и если я пытаюсь подключиться к сети, тогда нет разрыва строки и не отображается сформированный.Создать txt-файл в PHP

Я использую этот код.

header("Content-type: application/txt"); 
header("Content-Length: ". sizeof($content)); 
header("Content-Disposition: inline; filename=". $file); 
print $content; die; 

Если у кого есть решения, поделитесь со мной.

Заранее спасибо.

+0

вы хотите, чтобы отобразить файл в браузере или приглашение для загрузки? – Gordon

+0

Я уже пробовал этот «текст/обычную», но не отображался правильно. –

ответ

1

Попробуйте

header('Content-Type: text/plain'); 
readfile($file); 

Этого должно быть достаточно, чтобы отправить файл в виде открытого текста. Если это не работает для вас по какой-то непонятной причине, последнее средство - обернуть содержимое в теги <pre>.

6

у вас есть опечатка:

header("Content-Length: ". sizeof($content)); 

также, вы должны использовать

header("Content-type: text/plain"); 
1
  • правильный тип контента text/plain
  • Это Content-Length, не Content-Lenght, и, как правило PHP будет посылать это для вас
  • Вместо die, лучше использовать exit.

Проблема, вероятно, связана с неправильным типом MIME - некоторые браузеры будут игнорировать недопустимые типы контента и отображать его как HTML.

+0

Что случилось с использованием матрицы? Это просто псевдоним для выхода. –

+1

'Эта языковая конструкция эквивалентна exit()' - от страницы man man ... зачем использовать exit()? –

+0

У меня создалось впечатление, что 'die' сигнализирует об ошибке, как и в, вы прекращаете выполнение немедленно, потому что что-то пошло не так, в то время как' exit' означает, что вы прекратили выполнение немедленно, потому что вы закончили то, что вы хотите сделать. Технически они те же, но интуитивно, я бы сказал, они сигнализируют о разных намерениях. – tdammers

1

Попробуйте

$content = str_replace("\n\r","\n",$content);

$content = str_replace("\r","\n",$content);

header("Content-type: text/plain");

header("Content-Length: ". sizeof($content));

header("Content-Disposition: inline; filename=". $file);

print $content; die;

Смежные вопросы