Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: удалить из файла пустые строки

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: удалить из файла пустые строки
bushstas
Отправлено: 27 Июня, 2010 - 20:02:13
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Удаляю из файла определенную строку, остается пробел между строками,
не подскажите как удалить пустую строку из файла?
 
 Top
Champion Супермодератор
Отправлено: 27 Июня, 2010 - 20:05:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




А как удаляешь? Небось сам этот пробел и записываешь в файл. Т.е. не пробел, а перевод строк.и
 
 Top
SAD
Отправлено: 27 Июня, 2010 - 20:23:48
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




попробуй так
PHP:
скопировать код в буфер обмена
  1.  
  2. $base = file_get_contents("1.txt");
  3. $base = rtrim(preg_replace("/[\r\n]+/m","\r\n", $base));
  4. $fp = fopen("1.txt","w");
  5. fwrite($fp, "$base");
  6. fclose($fp);
 
 Top
Champion Супермодератор
Отправлено: 27 Июня, 2010 - 20:27:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Ну вот еще preg_replace тут не хватало... И подстановки переменной в двойных кавычках. Думайте о быстродействии. Пусть немного, но из таких немного секунды могут складываться.
 
 Top
SAD
Отправлено: 27 Июня, 2010 - 20:40:31
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




Не мое, нашел во всемирной сети.
 
 Top
bushstas
Отправлено: 27 Июня, 2010 - 21:46:17
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Champion пишет:
А как удаляешь? Небось сам этот пробел и записываешь в файл. Т.е. не пробел, а перевод строк.и


У меня файл sitemap.xml
При удалении страницы с сайта нужно удалить и строку из данного файла чтобы поисковик не индексировал ее больше
Сначала сохраняю содержимое файла в переменную $txt с помощью fread
затем $txt=str_replace('stroka','',$txt);
так и удаляю строку из файла, а из переменной $txt не получилось удалить \n\n то есть пустую строку

(Отредактировано автором: 27 Июня, 2010 - 21:48:18)

 
 Top
alexspb
Отправлено: 28 Июня, 2010 - 00:38:33
Post Id


Посетитель


Покинул форум
Сообщений всего: 260
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




можно для наглядности добавить


-----
Хостинг - неограниченно доменов на одну папку
Ajax - отличное введение
 
 Top
JustUserR
Отправлено: 28 Июня, 2010 - 14:47:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




bushstas пишет:
У меня файл sitemap.xml
При удалении страницы с сайта нужно удалить и строку из данного файла чтобы поисковик не индексировал ее больше
Сначала сохраняю содержимое файла в переменную $txt с помощью fread
Во-первых если файл sitemap.xml является валидным XML-файлом то и обрабатывать его лучше с помощью соответствующего XML-парсера - в PHP присутствует множество библиотек позволяющие делать как простую так и сложную обработку
Во-вторых если файл карты сайта является достаточно большим то не имеет смысла целиком считывать его в память - а гораздо лучше применить универсальный механизм обработки текстовых файлов Его смысл заключается в том что вы построчно считываете оригинальный файл - и после проверки и обработки каждой прочитанной строки вы записываете ее в новый файл - а в конце обработки меняете файлы местами и удаляете старый из них или делаете резервную его копию Такой подход хорош по многим причинам - во-первых если вы изменяете текущий файл в середине например добавляя иди удаляя оттуда информацию - то системе все равно приходится переносить оставшуются до конца файла часть данных что занимает некоторое время - во-вторых не приходится считывать файл целиком в память что является очень ресурсозатраным - поскольку для считывания файла в памяти потребуется почти в 2 раза больше места чем он занимает на дисковом накопителе Кроме того такой подход по умолчанию используется при работе с файлами в Perl - а ведь как известно обработка текстовых файлов/отчетов является одной из важнейшей задачи Perl


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
black_ru
Отправлено: 14 Июля, 2011 - 15:09:47
Post Id


Новичок


Покинул форум
Сообщений всего: 50
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Прошу прощения, что поднял такую старую тему. Просто искал сабж. У меня на основе вышеизложенного получилось так:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $base = file_get_contents("file.txt");
  3. $pattern1[0] = "/^.*$strinkk.*$/m";
  4. $pattern1[1] = "/\n\n+/m";
  5. $replacement1[0] = "";
  6. $replacement1[1] = "\n";
  7. $base = preg_replace($pattern1, $replacement1, $base);
  8. $fp = fopen("ile.txt","w");
  9. fwrite($fp, "$base");
  10. fclose($fp);

Т.е. у себя по своей переменной меняю всю строку, остается пустая строка, если писать дальше в файл, поэтому применяю $pattern1[1], который подтягивает строку до последней.

(Отредактировано автором: 14 Июля, 2011 - 16:48:40)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB