trim() для файлов

  • Автор темы Автор темы Pustota
  • Дата начала Дата начала

Pustota

Новичок
trim() для файлов

В поиске поискал - не нашел.

Есть ли что-то анологичное trim() но для файла?
Дело в том, что есть XML, довольно большой 70-100 метров, и в нем в начале и в конце пустые строки. Хочу их убрать. А то ругается парсер, что XML начинается не с
<?xml ...

Весь файл запихивать в строку и пересохранять не катит. Есть что-то более изящное?
 
индусометод:
$a = trim(file_get_contents($filename));

рукамиметод:
mcedit $filename
 
Не, большие объемы в переменную кидать...
Дополню немного вопрос.

Немного покумекав, решил, что меня спасет CURLOPT_WRITEFUNCTION так как я выкачиваю файлы через curl.
Я выкачиваю XML файл, но в начале файла перед <?xml идет много пустых строк. Мне нужно их удалить.
Вот код.

PHP:
<?
function trimmed($ch, $str) {
$len=trim($str);
return $len;
}

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://site.ru/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_WRITEFUNCTION,"trimmed"); 

curl_exec($ch);

curl_close($ch);
?>

Но я не догоню как сделать функцию обратного вызова. Что мне нужно написать в функции trimmed чтобы мне приходил файл без этих пустых строк в начале?
 
Pustota, ты понимаешь, что любое использование ф-ии trim будет требовать объем памяти как минимум вдвое больший, чем размер файла?

читай построчно и пустые строки просто не записывай, все равно построчное чтение будет буфферизироваться на уровне ОС
 
Угу, уже переделал.
Методом научного тыка выяснил, что и загружается файл пачками. что даёт в функции trimmed использовать
echo trim(str);

Всем спасибо, проблема решена.
 
-))) прикол в том, что загружается файл не пачками, а чанками, и чанк может оборваться посреди тега

если ты сделаешь трим такому чанку, то побьешь XML и фсьо
 
на концевые пробелы побоку

так что достаточно делать ltrim пока длина результата нулевая.
 
Да, правильнее наверно ltrim заюзать. Уже увидел, что XML бьется. Правда решил это совсем убиранием перевода строки. Теперь XML в одну строку, но усе пашет.
 
Сверху