За последние 24 часа нас посетили 9138 программистов и 449 роботов. Сейчас ищут 153 программиста ...

Как правильно записать данные в файл PHP

Тема в разделе "PHP для новичков", создана пользователем guno7, 15 апр 2018.

  1. guno7

    guno7 Новичок

    С нами с:
    10 апр 2018
    Сообщения:
    12
    Симпатии:
    0
    Доброе утро. При попытке записать данные в файл, у меня в файл записывается сначала имя, а потом переходит на новую строку. Из-за этого имя не находилось в файле.
    Т.е при записи в файл, у меня все записывается так:
    1.username
    2.//здесь бывает указатель и из-за этого невозможно правильно получить первое название

    А нужно так
    1.username //здесь указатель
    Код для записи в файл:
    PHP:
    1. <?php
    2. $user = $_GET['newuser'];
    3. if (isset($user)) {
    4. if ($user!="") {
    5.     $fh=fopen("users.txt", "a+");
    6.     $user = trim(preg_replace('/\s/', '', $user));
    7.     fwrite($fh, $user."\r\n");
    8.     fclose($fh);
    9.    }}
    10. ?>
    Как сделать так, чтобы каждый раз все записывалось с новой строки, но с условием что на новую строку он перейдет только при следующем редактрировании? Заранее спасибо
     
  2. Sail

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

    С нами с:
    1 ноя 2016
    Сообщения:
    1.306
    Симпатии:
    292
    @guno7, например, в 7-й строке "\r\n" заменить на константу PHP_EOL и перенести в начало формируемой строки (не $user.PHP_EOL, а PHP_EOL.$user)
    Но надо убедиться, что при отсутствии 'newuser' в файл ничего записываться не будет... Где-то ведь "указатель" ещё определяется и записывается...
     
  3. guno7

    guno7 Новичок

    С нами с:
    10 апр 2018
    Сообщения:
    12
    Симпатии:
    0
    Спасибо) ну проверка там есть насчет newuser
    --- Добавлено ---
    Теперь записывается так:
    //пустая строка
    WIN-96BVOQVUV8K

    Как сделать чтоб все начиналось с первой строки?
     
  4. Sail

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

    С нами с:
    1 ноя 2016
    Сообщения:
    1.306
    Симпатии:
    292
    Либо предварительно проверить длину файла (filesize), либо проверить существование файла (is_file), в зависимости от того, создаёте ли файл до регистрации пользователя, или файл создается автоматически при первой регистрации пользователя.
     
  5. guno7

    guno7 Новичок

    С нами с:
    10 апр 2018
    Сообщения:
    12
    Симпатии:
    0
    Все решил. Спасибо большое.
    Код:
    PHP:
    1. if (isset($user)) {
    2. if ($user!="") {
    3. if(file_exists('users.txt'))$b=true;
    4. else $b=false;
    5.     $fh=fopen("users.txt", "a+");
    6.     $user = trim(preg_replace('/\s/', '', $user));
    7.     if($b)fwrite($fh, "\r\n".$user);
    8.     else fwrite($fh, $user);
    9.     fclose($fh);
    10.     $fp = fopen("users/".$user.".txt", "w");
    11.     fwrite($fp, $user);
    12.     fclose($fp);
    13.    }
    14. }