За последние 24 часа нас посетили 17748 программистов и 1685 роботов. Сейчас ищут 1048 программистов ...

Запись данных в txt файл.

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

  1. KoLLIaPuK

    KoLLIaPuK Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    6
    Симпатии:
    0
    Доброе времени суток, начал изучать php и решил перейти к практике, написать маленький чат который будет сохранять сообщения в txt файл и от туда же их брать, но столкнулся с проблемой, при записи в файл строки не переносятся, вот код:
    Код (PHP):
    1. <html>
    2. <head>
    3. <title>Мини Чат!</title>
    4. </head>
    5. <form method="post" action="index.php"><br><br>
    6.  Сообщение: <input name="subm" type="text"  size="25" value="" />
    7. <br><br> <input type=submit value="Отправить"></form>
    8. </html>
    9. <?
    10. function write() {
    11. $fh = fopen("chat.txt", 'a');
    12. $data = $_POST['subm'];
    13. fwrite($fh, $data);
    14. fclose($fh);
    15. }
    16. write();
    17.  
    18. ?>
    P.S. Пробовал и \n и "\n" не получается.
     
  2. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    [ offtopic ]

    Не пользуйся коротким тегом <? а только полной формой: <?php , не ставь закрывающий ?> в последней строке — без него можно обойтись.
    Есть такие официальные рекомендации, просто запомни, а поймешь потом.

    Чтобы твой код выглядел красиво на форуме, используй ббкод
    [code=php]

    [/code]


    [ /offtopic ]

    Вот и покажи как пробовал. Сам fwrite() и не должен добавлять перевод строки!
     
  3. KoLLIaPuK

    KoLLIaPuK Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    6
    Симпатии:
    0
    Код (PHP):
    1. $data = $_POST['subm'] . "\n";
    2.  
     
  4. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    это должно работать!

    я бы только чуть по другому сделал, но это НЕпринципиально. перевод строки ты правильно оформил.
    Код (PHP):
    1. function writeln($data)
    2. {
    3.     $fh = fopen('./chat.txt', 'a');
    4.     fwrite($fh, $data."\n");
    5.     fclose($fh);
    6. }
    7.  
    8. if (isset($_POST['subm'])) {
    9.     writeln($_POST['subm']);
    10. } 
     
  5. KoLLIaPuK

    KoLLIaPuK Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    6
    Симпатии:
    0
    Спасибо большое за ответы, оказывается надо было просто открыть через Notepad++, в обычном блокноте не переносилось.
     
  6. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    C file_put_contents я поспешил (уже отредактировал). Тебе же надо добавлять, а не переписывать… Всё норм.

    Блокнотом ты файл chat.txt смотрел? Ну видимо он только "\r\n" считает переводом строки, да. Это для виндоуз стандарт.
     
  7. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Можно вместо "\n" PHP_EOL использовать,тогда на UNIX-системах будет "\n", а на Windows - "\r\n"
    "