Удалить пустые строки из файла (PHP)

Тема в разделе "PHP", создана пользователем WorkNets, 13 май 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. WorkNets

    WorkNets

    Регистр.:
    25 апр 2008
    Сообщения:
    161
    Симпатии:
    37
    Приветствую.
    Прошу помощи :thenks:
    Есть код:
    PHP:
    $url="base.txt";

    $link="$url";
    $file=fopen($link,"r");
    if (
    $file)
      {
      
    $rf fread($file,  filesize($link));
      
    fclose($file);
      }
      else
      {
      echo
    "fuck";
      
    fclose($file);
      exit;
      }
    $rf trim (chop ($rf));

    $rf=str_replace("  "" "$rf);

    А дальше мне надо еще из $rf кильнуть все пустые строки :confused:
    Чет я запутался. Как мне это сделать? Копчиком чую что не так все сложно как кажется, но в упор не вижу быстрого решения....
    Циклом перегонять весь массив на поиск == "" вроде как не выход. Можно быстрее все сделать? :bc:

    файл base.txt выглядит так:
    PHP:
    строка 1

    строка 2
    строка 3

    строка 4

    .............

    строка n

     
  2. root230101

    root230101

    Регистр.:
    19 сен 2007
    Сообщения:
    304
    Симпатии:
    21
  3. pll

    pll Создатель

    Регистр.:
    29 дек 2007
    Сообщения:
    28
    Симпатии:
    5
    Можно так

    PHP:
    $txt trim(preg_replace('/[\r\n]+/m','\n',$txt));
     
  4. WorkNets

    WorkNets

    Регистр.:
    25 апр 2008
    Сообщения:
    161
    Симпатии:
    37
    pll Удобно. Но на выходе в файле мы тогда получаем одну строку :(
    А мне нужно просто пустые строки кильнуть...
     
  5. Flake

    Flake Постоялец

    Регистр.:
    11 май 2007
    Сообщения:
    80
    Симпатии:
    6
    Код:
    <?
    $base = file_get_contents("base.txt");
    $base = trim(preg_replace("/[\r\n]+/m","\r\n", $base));
    
    $fp = fopen("new_base.txt", "w");
    fwrite($fp, $base);
    fclose($fp);
    ?>
    Результат в файле new_base.txt
     
    WorkNets нравится это.
  6. pll

    pll Создатель

    Регистр.:
    29 дек 2007
    Сообщения:
    28
    Симпатии:
    5
    PHP:
    $url="base.txt";

    $link="$url";
    $file=fopen($link,"r");
    if (
    $file)
      {
      
    $rf fread($file,  filesize($link));
      
    fclose($file);
      }
      else
      {
      echo
    "fuck";
      
    fclose($file);
      exit;
      }


    ///////////
    $txt trim(preg_replace('/[\r\n]+/m',"\n",$rf));

    $openFile fopen($url'w+');
                                    
    fwrite($openFile$txt );
                                
    fclose($openFile);
     
    WorkNets нравится это.
  7. WorkNets

    WorkNets

    Регистр.:
    25 апр 2008
    Сообщения:
    161
    Симпатии:
    37
    Сработало четко (оба варианта) :ay:
    Спасиб огромное.
    Пойду учить регулярку, ибо она творит чудеса :D
     
  8. masto

    masto Прохожие

    ещё для разнообразия:
    PHP:
    <?php

    $new 
    file('base.txt');
    $file fopen('new.txt''w+');

    foreach(
    $new as $v)
        if(
    $v != "\r\n")
            
    fwrite($file$v);

    fclose($file);    

    ?>
     
  9. spamkit

    spamkit Создатель

    Регистр.:
    21 ноя 2007
    Сообщения:
    25
    Симпатии:
    2
    Данный скрипт исходит из того, что в конце строки всегда стоят \r и \n. Это не всегда так, потому имеет смысл проверять так: if (strlen(trim($v)) > 0)...
     
Статус темы:
Закрыта.