За последние 24 часа нас посетили 39076 программистов и 1278 роботов. Сейчас ищут 1033 программиста ...

Выгрузка данных из БД

Тема в разделе "PHP для новичков", создана пользователем Alex870, 31 авг 2015.

  1. Alex870

    Alex870 Новичок

    С нами с:
    8 дек 2013
    Сообщения:
    121
    Симпатии:
    2
    Неа, тоже самое.
    В загруженном файле всё по прежнему.
    Код страницы до вызова функции DownloadFl, потом все данные без переноса строк.
    Капец какой-то :)

    Добавлено спустя 2 минуты 31 секунду:
    Может настройки php? Или вот здесь что-то не то:
    Код (PHP):
    1. Header('Accept-Ranges: bytes'); 
    2.                         Header('Content-Length: '.cntbytes); 
    3.                         Header('Content-disposition: attachment; filename="SpeedCam22.txt"');  
    Попутно, как сделать, чтобы код нормально вставлялся, не зеленым, а с раскраской? Но это не главное, просто спросил.

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Должно работать если вывод не буферится
     
  3. Alex870

    Alex870 Новичок

    С нами с:
    8 дек 2013
    Сообщения:
    121
    Симпатии:
    2
    Дык вот-же. Должно, но не работает. Как это узнать, что вывод "буферится"? Вообще я очень давно грешу на настройки сервера. У меня на сайте в отдельном коде генерируется XML средствами php. Так вот я помню задолбал форумчан с поиском ошибки, а на самом деле страница не перегружалась, сервер отдавал последний "удачный" вариант. Я так и не разобрался в причинах. Просто после каждой правки переименовывал страницу (точнее файл php), пока не получилось то, что мне нужно. Потом назвал первоначальным именем и забыл.
    Но здесь ситуация немного другая. Я меняю код php файла и получаю разные результаты, но не те, что желаю...
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    это уже область шаманства. Надо гуглить, сразу же пробовать, гуглить опять и опять пробовать, и надеяться, что что-то поможет.
     
  5. Alex870

    Alex870 Новичок

    С нами с:
    8 дек 2013
    Сообщения:
    121
    Симпатии:
    2
    :)
    С одной проблемой почти разобрался. Это по поводу переноса строк.
    Начну с начала, implode у меня не работает.
    Я это понял не сразу (пояснения в предыдущем посте почему не сразу), сервер мне возвращал последнюю удачную страницу, а так как implode он не понимал, считал, что страница с ошибкой.
    Вот, переделал обратно на циклы - заработало, но без переноса строк, посмотрел в far'e оказывается "\n" добавляет возврат каретки к строке, т.е. символ х0А, а для блокнота (notepad.exe) надо ещё символ завершения строки (х0D).
    Сделал так:
    Код (PHP):
    1. 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 с кодом скачивания.
    Спасибо.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    прям кода пхп?
     
  7. Alex870

    Alex870 Новичок

    С нами с:
    8 дек 2013
    Сообщения:
    121
    Симпатии:
    2
    Воспользовался ф-цией chr.
    Код (PHP):
    1. echo($arr[$n].chr(13)."\n"); 
    Всё нормально заработало и на сервере.
    Остался вопрос с включением в файл кода страницы.

    Добавлено спустя 3 минуты 23 секунды:
    Я написал ДО куска кода PHP. Кусок кода php следует за тэгом <form> и приведен в 11 посте этой ветки.
    Вот, что получается в скачанном текстовом файле:
    Код (PHP):
    1. <html xmlns="http://www.w3.org/1999/xhtml">
    2.  
    3. <head>
    4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    5. <title>Панель администратора</title>
    6.     
    7.     <link rel="stylesheet" type="text/css" href="css/adm.css" media="screen" />
    8.        
    9.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    10.        
    11. </head>
    12.  
    13. <body>
    14. <script type="text/javascript">
    15.  
    16.                     //Функция показа
    17.             function show(state,text){
    18.                     document.getElementById('window').innerHTML = '<h1>Пожалуйста подождите</h1><br/><img width="200px" src = "images/loading.gif"><br><br>Выполняются операции <br><div>'+text+'</div>';
    19.                     document.getElementById('window').style.display = state;        
    20.                     document.getElementById('wrap').style.display = state;
    21.                     document.getElementById('wrap').style.readonly = "readonly";
    22.             }
    23.             
    24.  
    25.                     //Функция показа диалога скачивания
    26.             function showDlg(state){
    27.                       document.getElementById('windowDlg').style.display = state;        
    28.                     document.getElementById('wrap').style.display = state;
    29.                     document.getElementById('wrap').style.readonly = "readonly";
    30.             }
    31.             
    32. </script>
    33.  
    34.                     
    35. <div id="wrap"></div>
    36.  
    37.                     
    38. <div id="window" >
    39.                         
    40. <h1>Пожалуйста подождите</h1>
    41. <br/>
    42. <img width="200px" src = "images/loading.gif">
    43. <br>
    44. <br>
    45. Выполняются операции <br>
    46. <div>
    47. конвертирования и загрузки информации в базу данных.
    48. </div>    
    49. </div>
    50.  
    51. <div id="windowDlg" >
    52.  
    53. <form enctype="multipart/form-data" method="post">
    54. <input type="submit" name="download" value="download" style="width: 60;height: 85;
    55.             padding:0px;border: 0;
    56.                     background :transparent url('images/download.png') no-repeat center top;cursor: pointer;cursor: hand;
    57.                     display: block;text-align: center;vertical-align: text-bottom;margin: 0px auto;line-height:24px;">
    58.                     
    59.                     </form>
    60.                     1,34.34957560,44.59875910,9,50,0,0,POST-GIBDD
    61. 2,34.34375520,44.75679590,9,50,0,0,POST-GIBDD
    62. 3,37.32525500,44.92376200,11,40,1,346,POTOK
    63. .
    64. .
    65. .
    66. .
    Дальше куча строк, выводимых из базы. Мне нужно убрать всё до (влючительно) тэга <form>
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Не должно быть ничего в обработчике запроса эссстественно.
     
  9. Alex870

    Alex870 Новичок

    С нами с:
    8 дек 2013
    Сообщения:
    121
    Симпатии:
    2
    Я уже писал, я новичок, и для меня не эссстественно всё, что для Вас эсстествнно. Что должно быть в обработчике запроса? Я Вас не понимаю. Как и не понимаю, что Вы называете обработчиком запроса. Ну сделайте скидку на начинающего, пожалуйста.
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну ты сам чуток подумай =)
     
  11. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    На счёт перевода каретки на новую строку.
    Если я всё верно понял когда изучал этот вопрос то:
    в линуксе надо писать \n
    а в виндовсе \r\n
    в маке ещё както
     
  12. Alex870

    Alex870 Новичок

    С нами с:
    8 дек 2013
    Сообщения:
    121
    Симпатии:
    2
    Да, всё правильно, но у меня задача несколько другая была. Мне нужно было создать текстовый файл определенного формата. Он (формат) соответствует формату виндовс, в конце строки должен быть завершающий 0 и перевод на другую строку - символы x0Dx0A или #13#10.

    Проблему с выводом куска кода страницы решил, перенеся блок php в самое начало страницы.