Подскажите

Статус
В этой теме нельзя размещать новые ответы.

dalera

Создатель
Регистрация
24 Сен 2009
Сообщения
41
Реакции
1
Народ поскажите хотяб кусочек кода как здесь Для просмотра ссылки Войди или Зарегистрируйся только не онлайн а чтоб код.
- Разрезка текстовых файлов
Скрипт нарежет вам текстовый файл в комплексный ZIP архив с числом строк, которое вы укажите. Удобно например для разрезки больших баз каталогов, форумов и т.п

Код для Разрезки текстовых файлов, указываешь через сколько строк делить и все.

ПОжалуЙстаа..
 
PHP:
$maxLine = 100;
$inputFile = @fopen('input.txt', 'r');
$currentFileIndex = 0;
$currentLine = 0;
$gzOutput = @gzopen('output' . $currentFileIndex . '.gz','wb9');
while(!@feof($inputFile)) {
	if (($line = @fgets($inputFile)) !== false) {
		if ($currentLine >= $maxLine) {
			@gzclose($gzOutput);
			$currentFileIndex++;
			$gzOutput = @gzopen('output' . $currentFileIndex . '.gz','wb9');
			$currentLine = 0;
		}
		@gzwrite($gzOutput, $line);
		$currentLine++;
		
	}
}
@fclose($inputFile);
@gzclose($gzOutput);
 
Код для Разрезки текстовых файлов, указываешь через сколько строк делить и все.

Вот написал ещё один из вариантов решения (с комментариями) - только в результате получается не zip-архив, а просто отдельные txt-файлы part1.txt, part2.txt и т.д.

PHP:
		$filename = 'файл_для_нарезки.txt';		
		$per_file = 2000; //Сколько строк в одном файле?
		
		//Далее идёт программный подсчёт 
		$f = file ($filename); //Читаем файл
		
		$lines_count = count ($f); //Всего линий в файле
		$count = floor ($lines_count/$per_file) + 1; //Сколько будет файлов?
		
		$pos = 0; //Позиция в массиве
		
		for ($j=1; $j<=$count; $j++) {
			
			$fdata = ''; //Данные для файла
			
			for ($i=1; $i<=$per_file; $i++) {
				
				if ($pos>=$lines_count) break; //Выходим из этого цикла если файл закончен
				
				$fdata .=  $f[$pos]."\r\n"; //Добавляем строчку								
				$pos++; //Увеличиваем позицию на 1
			}
			
			//Запись 1 файла
			$fp = fopen ('part'.$j.'.txt','w');
			fwrite ($fp,$fdata);
			fclose ($fp);
			
		}  
		
		echo 'Завершено';

При желании можно потом подключить и zip-функции.
 
Если не обязательно на php, то лучше юзать Keyword Keeper
 
Keyword Keeper по строкам не делит, вообще, как-то было в лом писать, начал копать гугл, так и не нашел проги которая делила бы по строкам, не по символам, количеству слов и т.д., а именно по строкам.
 
Для архивации в ZIP могу порекомендовать библиотеку pclzip.lib.php (ищите в поиске). Хорошая вещь.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху