Войти

Показать полную графическую версию : Сравнение строк в php


dimona55
20-01-2014, 11:28
Здравствуйте ув. форумчане. Прочитав кучу информации так и не смог додумать. Собственно:
Имеется файл csv с разделителями запятыми, в случае появления в строке 0.0000 необходимо именно эту строку скопировать в новый файл. Сам файл огромный.
Вот пример внутренности файла

"test,""traffic"",2014/01/06,09:55,1388994900, 3089.5270, 7443.9392, 4116.2116, 19661.7698"
"test,""traffic"",2014/01/06,10:00,1388995200, 4820.3930, 15529.6832, 4820.3930, 15529.6832"
"test,""traffic"",2014/01/06,10:05,1388995500, 4746.0654, 6845.8629, 4820.3930, 15529.6832"
"test,""traffic"",2014/01/13,07:20,1389590400, 0.0000, 0.0000, 0.0000, 0.0000"
"test,""traffic"",2014/01/13,07:25,1389590700, 0.0000, 0.0000, 0.0000, 0.0000"
"test,""traffic"",2014/01/13,07:30,1389591000, 0.0000, 0.0000, 0.0000, 0.0000"

Заранее благодарю!

dimona55
20-01-2014, 15:13
Собственно решение :) еще один вопрос как сделать так что б имя файла было "test", которое будет всегда меняться

<?php
// загонмим файл в массив
$general = file ( 'a.txt' );

// в $content - все строки файла
$lines = count ($general) ;

// новые данные
$content = "";

// в цикле прогоняем все строки
for ( $i = 0; $i < $lines; $i++ ){
// $general[$i] - это каждая строка

// если в строке нашли 0.0000, то добавлем уту строку в $content
if(preg_match("~0\.0000~", $general[$i]) ) {
$content .= $general[$i];
}

}

// пишем это в новый файл
$fp = fopen ( "new.txt", "w" );
if($fp){
fwrite ($fp, $content);
fclose($fp);
}

// в фале "new.txt" все строки из файла 'a.txt', в которых есть 0.0000
?>

Iska
20-01-2014, 16:53
Сам файл огромный. »
Собственно решение
// загонмим файл в массив»
Если верно первое — то это не решение, а издевательство. Работайте с файлом как с базой данных.

Sham
20-01-2014, 20:21
да, лучше построчно fgetcsv/fputcsv или fgets/fwrite




© OSzone.net 2001-2012