За последние 24 часа нас посетил 17751 программист и 1645 роботов. Сейчас ищут 1869 программистов ...

как избавиться от лишнего перехода на новую строку?

Тема в разделе "PHP для новичков", создана пользователем Alex_ST, 26 май 2012.

  1. Alex_ST

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

    С нами с:
    5 дек 2011
    Сообщения:
    23
    Симпатии:
    0
    Код (Text):
    1.  
    2.          $fp = fopen("$address","a");
    3.          fputs($fp, $massiv[$k]."\n");
    4.          fclose ($fp);
    Этим куском я по средствам цикла записываю построчно данные из массива, т.е. каждая запись с новой строки.
    Но вот последняя запись сопровождается переходм на новую строку, что совершенно мне ненужно, подскажите как избавиться от этого.
    Получается вот так в файле:
    1.данные\n
    2.данные\n
    3.пусто
     
  2. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Это тут не причем, видать у вас переадресация стоит после выполнения!
    какой - нибудь header или <meta>
     
  3. Alex_ST

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

    С нами с:
    5 дек 2011
    Сообщения:
    23
    Симпатии:
    0
    а причем тут теги HTML
    я созданный файл открываю текстовым редактором и там будет последння строка, пустая.
    и если проверить файл с помощью:
    Код (Text):
    1. <?php
    2.  
    3. $list = file("resultat/yes.txt");
    4. $lines = count($list);
    5. echo $lines;
    6.  
    7. ?>
    будет на одну строку больше
    тут ведь fputs($fp, $massiv[$k]."\n");
    оно так и есть после записи ставить \n, а это переход на новую строку, вот если бы после последней записи не ставить \n тогда было бы то что нужно.
     
  4. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Например, помести сперва все строки в массив, чтобы получилось что-то такое:
    Код (PHP):
    1. $arr = array('Строка 1', 'Строка 2', 'Строка 3'); 
    А потом объедини массив по нужному символу и запиши в файл:
    Код (PHP):
    1. file_put_contents('filename.txt', implode("\n", $arr)); 
    Ну либо можешь в своём цикле. Тебе в нём нужно знать, является ли данная запись (которая сейчас записывается) - последней. Например, можешь перед циклом определить сколько строк всего нужно записать и создать переменную-счётчик, которую будешь увеличивать на 1 на каждой итерации, а потом в цикле - сравнивать эту переменную-счётчик и количество строк. Если текущая строка ещё не последняя, то приписываем к строке "\n", иначе - нет.
     
  5. Alex_ST

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

    С нами с:
    5 дек 2011
    Сообщения:
    23
    Симпатии:
    0
    всем спасибо, немного изменил основной код и обошл эту часть по другому.