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

Статус
В этой теме нельзя размещать новые ответы.

WorkNets

Профессор
Регистрация
25 Апр 2008
Сообщения
161
Реакции
38
Приветствую.
Прошу помощи :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
 
Можно так

PHP:
$txt = trim(preg_replace('/[\r\n]+/m','\n',$txt));
 
pll Удобно. Но на выходе в файле мы тогда получаем одну строку :(
А мне нужно просто пустые строки кильнуть...
 
Код:
<?
$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
 
pll Удобно. Но на выходе в файле мы тогда получаем одну строку :(
А мне нужно просто пустые строки кильнуть...

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);
 
Сработало четко (оба варианта) :ay:
Спасиб огромное.
Пойду учить регулярку, ибо она творит чудеса :D
 
ещё для разнообразия:
PHP:
<?php

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

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

fclose($file);	

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

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

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

fclose($file);	

?>

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