Неа, тоже самое. В загруженном файле всё по прежнему. Код страницы до вызова функции DownloadFl, потом все данные без переноса строк. Капец какой-то Добавлено спустя 2 минуты 31 секунду: Может настройки php? Или вот здесь что-то не то: Код (PHP): Header('Accept-Ranges: bytes'); Header('Content-Length: '.cntbytes); Header('Content-disposition: attachment; filename="SpeedCam22.txt"'); Попутно, как сделать, чтобы код нормально вставлялся, не зеленым, а с раскраской? Но это не главное, просто спросил. PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
Дык вот-же. Должно, но не работает. Как это узнать, что вывод "буферится"? Вообще я очень давно грешу на настройки сервера. У меня на сайте в отдельном коде генерируется XML средствами php. Так вот я помню задолбал форумчан с поиском ошибки, а на самом деле страница не перегружалась, сервер отдавал последний "удачный" вариант. Я так и не разобрался в причинах. Просто после каждой правки переименовывал страницу (точнее файл php), пока не получилось то, что мне нужно. Потом назвал первоначальным именем и забыл. Но здесь ситуация немного другая. Я меняю код php файла и получаю разные результаты, но не те, что желаю...
это уже область шаманства. Надо гуглить, сразу же пробовать, гуглить опять и опять пробовать, и надеяться, что что-то поможет.
С одной проблемой почти разобрался. Это по поводу переноса строк. Начну с начала, implode у меня не работает. Я это понял не сразу (пояснения в предыдущем посте почему не сразу), сервер мне возвращал последнюю удачную страницу, а так как implode он не понимал, считал, что страница с ошибкой. Вот, переделал обратно на циклы - заработало, но без переноса строк, посмотрел в far'e оказывается "\n" добавляет возврат каретки к строке, т.е. символ х0А, а для блокнота (notepad.exe) надо ещё символ завершения строки (х0D). Сделал так: Код (PHP): echo($arr[$n].PHP_EOL."\n"); И на wamp'e всё заработало, строки стали переноситься. WAMP - Apache 2.2.22 и PHP 5.3.13 Перенес этот код на свой сервер, там уже Linux и PHP 5.4.19. Но там не заработало, на сервере PHP_EOL добавляет в строку не х0D, а х0А, получается, что в строке в конце два символа х0А, блокнот не понимает. Скажите, как добавить в конец строки именно два байта x0D и x0A (#13#10)? Без всяких условностей, типа EOL, которые в зависимости от версий, а может кодировок или ещё чего-то по разному работают. Осталась проблема с добавлением в начало скачанного файла куска кода php от начала страницы до фрагмента кода php, открывающего страницу php с кодом скачивания. Спасибо.
Воспользовался ф-цией chr. Код (PHP): echo($arr[$n].chr(13)."\n"); Всё нормально заработало и на сервере. Остался вопрос с включением в файл кода страницы. Добавлено спустя 3 минуты 23 секунды: Я написал ДО куска кода PHP. Кусок кода php следует за тэгом <form> и приведен в 11 посте этой ветки. Вот, что получается в скачанном текстовом файле: Код (PHP): <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Панель администратора</title> <link rel="stylesheet" type="text/css" href="css/adm.css" media="screen" /> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> </head> <body> <script type="text/javascript"> //Функция показа function show(state,text){ document.getElementById('window').innerHTML = '<h1>Пожалуйста подождите</h1><br/><img width="200px" src = "images/loading.gif"><br><br>Выполняются операции <br><div>'+text+'</div>'; document.getElementById('window').style.display = state; document.getElementById('wrap').style.display = state; document.getElementById('wrap').style.readonly = "readonly"; } //Функция показа диалога скачивания function showDlg(state){ document.getElementById('windowDlg').style.display = state; document.getElementById('wrap').style.display = state; document.getElementById('wrap').style.readonly = "readonly"; } </script> <div id="wrap"></div> <div id="window" > <h1>Пожалуйста подождите</h1> <br/> <img width="200px" src = "images/loading.gif"> <br> <br> Выполняются операции <br> <div> конвертирования и загрузки информации в базу данных. </div> </div> <div id="windowDlg" > <form enctype="multipart/form-data" method="post"> <input type="submit" name="download" value="download" style="width: 60;height: 85; padding:0px;border: 0; background :transparent url('images/download.png') no-repeat center top;cursor: pointer;cursor: hand; display: block;text-align: center;vertical-align: text-bottom;margin: 0px auto;line-height:24px;"> </form> 1,34.34957560,44.59875910,9,50,0,0,POST-GIBDD 2,34.34375520,44.75679590,9,50,0,0,POST-GIBDD 3,37.32525500,44.92376200,11,40,1,346,POTOK . . . . Дальше куча строк, выводимых из базы. Мне нужно убрать всё до (влючительно) тэга <form>
Я уже писал, я новичок, и для меня не эссстественно всё, что для Вас эсстествнно. Что должно быть в обработчике запроса? Я Вас не понимаю. Как и не понимаю, что Вы называете обработчиком запроса. Ну сделайте скидку на начинающего, пожалуйста.
На счёт перевода каретки на новую строку. Если я всё верно понял когда изучал этот вопрос то: в линуксе надо писать \n а в виндовсе \r\n в маке ещё както
Да, всё правильно, но у меня задача несколько другая была. Мне нужно было создать текстовый файл определенного формата. Он (формат) соответствует формату виндовс, в конце строки должен быть завершающий 0 и перевод на другую строку - символы x0Dx0A или #13#10. Проблему с выводом куска кода страницы решил, перенеся блок php в самое начало страницы.