Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Удаление пустых строк с пробелами
 
 автор: Sharax   (20.08.2014 в 18:55)   письмо автору
 
 

Всем привет!
Курлом забираю файл с одного сайта, там много пустых строк, но стоки не совсем пустые, в них содержатся пробелы, поэтому

$text = str_replace("\n\n", "\n", $text);

не работает.


Подскажите как удалить пустую строку даже если в ней есть 1 и более пробелов?

  Ответить  
 
 автор: mihdan   (20.08.2014 в 23:54)   письмо автору
 
   для: Sharax   (20.08.2014 в 18:55)
 

Ну так и заменяйте пробелы:


<?php
$text 
= str_replace("  ", " ", $text);
?>

  Ответить  
 
 автор: confirm   (21.08.2014 в 08:13)   письмо автору
 
   для: Sharax   (20.08.2014 в 18:55)
 

Если удалить все пробелы (в ней есть 1 и более пробелов), то получите непрерывную строку символов без пробелов.
Поэтому, если надо удалить лишние пробелы, то шаблоном '/\s{2,}/' для preg_replace замените их на ''.
Если нужно сохранить как есть, удалив только пустые строки, то:

<?
$text 
= implode("\n", preg_split("/\n|\r\n/", $text, null, PREG_SPLIT_NO_EMPTY));
//правда при варианте выше будут сохранены строки содержащие табуляцию
//то есть пустые только визуально
//поэтому как вариант так
$text = implode("\n", array_diff(array_map('trim', preg_split("/\n|\r\n/", $text, null, PREG_SPLIT_NO_EMPTY)), array('')));

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования