За последние 24 часа нас посетили 19536 программистов и 1602 робота. Сейчас ищут 920 программистов ...

Найти и удалить строку из файла

Тема в разделе "PHP для новичков", создана пользователем SV4, 28 окт 2011.

  1. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
  2. SV4

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

    С нами с:
    24 сен 2011
    Сообщения:
    59
    Симпатии:
    0
    Адрес:
    Красноярск
    Материал что надо!!!
    Особенно с утра читать, для поднятия настроения! :lol:
     
  3. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    смотреть здесь: http://php-pro.su/article/standarty-ofo ... a-php-koda
    и здесь: http://ru.wikipedia.org/wiki/Отступ_(программирование)
     
  4. SV4

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

    С нами с:
    24 сен 2011
    Сообщения:
    59
    Симпатии:
    0
    Адрес:
    Красноярск
    Ладно, про "диагональное и поперечное программирование" все понятно!
    Но хотелось бы вернуться непосредственно к разбору самого кода.
    Из выше предложенных вариантов, сделал следующее:
    PHP:
    1. <?
    2. //Проверка базы новостей на устаревшие новости
    3. //Настройка даты
    4. $y   =date("y");
    5. $m  =date("m");
    6. $d   =date("d");
    7. //Настройка семидневной даты тест
    8. $dt =$d-7;
    9. if($dt<1)
    10. {
    11. $dt=1;
    12. }
    13. //Открываем текстовый файл
    14. $string  =file_get_contents($adres);
    15. $string  =explode("\n",$string);
    16.    //Перебор массива
    17.   foreach($string as $key=>$value)
    18.   {
    19.   $line=explode("|",$value);
    20.        if($line[0]<=$dt)
    21.        {
    22.        unset($string[$key]);
    23.        }
    24.    }
    25. $string=implode("\n",$string);
    26.  
    27. //Переписываем новость
    28. $f=fopen($adres,"w")
    29. or exit("Не открыть файл!");
    30. flock($f,LOCK_EX);
    31. fputs($f,$string);
    32. flock($f,LOCK_UN);
    33. fclose($f);
    34.  
    Весь процесс теперь выполнятся как и задумывалось, но все же какая то непонятная проблема осталась.
    Все дело в том, что запись в файл, идет не построчно, например вот так:
    Первая строка
    Вторая строка
    Третья и т.д.
    а записывается сейчас в одну строку, вот так:
    Первая строкаВторая строкаТретья строка и т.д.

    Не могу разобраться, где находится косяк и почему исчезает перенос строки,хотя он конкретно
    указан в строке 25:
    PHP:
    1. <?
    2. $string=implode("\n",$string);
    Что то я подзаблудился. Жду помощи!
     
  5. SV4

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

    С нами с:
    24 сен 2011
    Сообщения:
    59
    Симпатии:
    0
    Адрес:
    Красноярск
    Все! Нашел в чем проблема.
    Как обычно бывает, невнимательность подвела.
    Ниже находился другой обработчик,( который добавлял кое какие данные),вот он то и убивал перевод строки.
    Еще раз извиняюсь, за Ваше потраченное время на данный топик!!!
     
  6. siiXth

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

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
  7. SV4

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

    С нами с:
    24 сен 2011
    Сообщения:
    59
    Симпатии:
    0
    Адрес:
    Красноярск
    Не знал точно, но догадывался!