Если это пробелы, то вот так должно сработать.
$string = preg_replace("\s+", " ", $string);
или так $string = preg_replace("/\s+/", " ", $string); не помню синтаксис паттернов
Но думаю тут еще лишние переносы строк надо убирать.
$read = './read.txt'; //файл для чтения
$write = './write.txt'; //файл для записи
//читаем файл
$file = file_get_contents($read);
//удаляем лишние данные
$file = trim(preg_replace("/[\r\n]+/m","\r\n", $file));
//записываем полученные данные в файл
file_put_contents($write, $file);
2) Метод с перебором массива строк:
PHP код:
$read = './read.txt'; //файл для чтения
$write = './write.txt'; //файл для записи
//получаем данные из файла
$file = file($read);
//убираем пустые символы по краям строк
$file = array_map('trim', $file);
//удаляем пустые строки
for ($i=0; isset($file[$i]); $i++) if (empty($file[$i])) unset($file[$i]);
//записываем полученные данные в файл
file_put_contents($write, implode("\r\n", $file));
3) Метод с последовательным чтением строк:
PHP код:
$read = './read.txt'; //файл для чтения
$write = './write.txt'; //файл для записи
//Открываем файл. Если файл не существует, то не производим операции
if ($handle = fopen($read, 'r'))
{
$file = array(); //Создаем пустую переменную для строк
//Читаем строки
while($string = fgets($handle))
{
//Очищаем строку от пустых символов по краям
$string = trim($string);
//Если строка не пустая, то добавляем ее в массив для записи
if (!empty($string)) $file[] = $string;
}
//Закрываем читаемый файл
fclose($handle);
//записываем полученные данные в файл
file_put_contents($write, implode("\r\n", $file));
}
1 метод
плюсы: простота, изящность
минусы: жрет память
2 метод
плюсы: простота
минусы: жрет память больше 1 метода
3 метод
плюсы: простота
минусы: жрет меньше всего памяти, но выглядит не кавайно
Последний раз редактировалось wext01; 05.10.2011 в 18:55.