Разбиваем текстовый файл на части

Kislov
На сайте с 29.04.2006
Offline
185
1312

Нужен софт или скрипт для разбивки txt файла на файлы по N строк в каждом.

Есть ли готовые решения?

Может кто кинет код, если не сложно. :)

Спасибо за помощь

Dreammaker
На сайте с 20.04.2006
Offline
569
#1


$file = 'file.txt'; // имя файла

$count = 100; //по сколько разбиваем...

$i = 0; $y = 0;

foreach($file as $string){

if ($i == $count) {

$y++;

$i = 0;

}

file_put_contents('newfile' . $y . '.txt', $string, FILE_APPEND);

$i++;

}



?>

PHP5 only :) Не проверял, если не так будет работать, то доточу, но вроде не должно, разве что больше строк будет добавлять.

Kislov
На сайте с 29.04.2006
Offline
185
#2

Dreammaker,

Warning: Invalid argument supplied for foreach() in Z:\home\sort\ on line 9

Dreammaker
На сайте с 20.04.2006
Offline
569
#3

ступил :)


$file = file('file.txt'); // имя файла

$count = 100; //по сколько разбиваем...

$i = 0; $y = 0;

foreach($file as $string){

if ($i == $count) {

$y++;

$i = 0;

}

file_put_contents('newfile' . $y . '.txt', $string, FILE_APPEND);

$i++;

}



?>

жду следующего бага :)

Kislov
На сайте с 29.04.2006
Offline
185
#4

Какой там код выставляет время выполнения скрипта в 0? :)

Спасибо. Работает. + в репу

Dreammaker
На сайте с 20.04.2006
Offline
569
#5

set_time_limit(0);

:)

только не в ноль, а не прерывается скрипт, если это имелось в виду :)

Progr@mmer\.
На сайте с 14.10.2007
Offline
44
#6

Лучше бы было использовать for или while цикл, потому что они на больших файлах меньше тормозят, в отличии от foreach. Имхо

Вашей девушке не хватает романтики? Черпните её на сайте «Я Люблю Романтику» (http://iloveromantics.ru/). Романтический форум (http://forum.iloveromantics.ru/) для отдыха от нудной работы.
Artisan
На сайте с 04.03.2005
Offline
371
#7

$ man split

www.leak.info / ДАРОМ линки конкурентов и забытых доменов
MASe
На сайте с 17.09.2002
Offline
219
#8

а можно тоже самое, только чтобы под php4 работало, а???

Only God Can Judge Me... Nobody Else... Дрезна (http://www.drezna.ru/) Помощники: Sape (http://www.sape.ru/r.167724536c.php)
dkameleon
На сайте с 09.12.2005
Offline
386
#9
MASe:
а можно тоже самое, только чтобы под php4 работало, а???

добавьте в код:

define('FILE_APPEND', 1);
function file_put_contents($n, $d, $flag = false) {
$mode = ($flag == FILE_APPEND || strtoupper($flag) == 'FILE_APPEND') ? 'a' : 'w';
$f = @fopen($n, $mode);
if ($f === false) {
return 0;
} else {
if (is_array($d)) $d = implode($d);
$bytes_written = fwrite($f, $d);
fclose($f);
return $bytes_written;
}
}
Дизайн интерьера (http://balabukha.com/)
MASe
На сайте с 17.09.2002
Offline
219
#10
dkameleon:
добавьте в код:

+++ - все работает!

спасибо!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий