Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

michhsilva

Dividir arquivo txt em varias partes com php

Recommended Posts

Olá pessoal boa tarde, gostaria de tirar uma duvida com vcs...

 

Estou precisando dividir um arquivo txt com 50 mil linhas em 5 arquivos com 10 mil linhas cada, so que cada arquivo deve ter uma

parte do arquivo original, eu ja tinha testado algumas coisas com os comandos fopen, fwrite e fclose do php, mas o bixo pegou na hora de saber em quaal linha eu tinha parado, pois pegar as primeiras 5 mil linhas é facil o negocio pegou mesmo quando eu fui tentar pegar as outras 5 mil e assim por diante, pois desse jeito cada vez que eu pegar 5 mil linhas eu deveria recortar e jogar no novo arquivo mas nao sei como fazer isso. Se alguem souber como fazer isso, mesmo sem precisar recortar as linhas do arquivo original.... fico muito grato,,,

 

 

Valeu galera, abracos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae amigo, fiz um código aqui eu acho que vai funcionar.

<?php
		$arquivo = fopen('insert.txt','r');//No lugar do insert.txt, coloque o nome do seu arquivo.
		if ($arquivo == false) die('Não foi possível abrir o arquivo.');
		$cont   = 0;
		$string = "";
		$arq = 1;
		$total = 5000; // Total de linhas que você quer ler.
		while(true) {
			if($cont < $total)
			{
				$linha = fgets($arquivo);
				if ($linha==null) break;
				$string.= $linha;
				$cont++;
			}
			else
			{
				$ponteiro = fopen('insert'.$arq.'.txt','w+');
				if ($ponteiro == false) die('Não foi possível criar o arquivo.');
				fwrite($ponteiro, $string);
				$total = $total + 5;
				$arq++;
                                //$string="";
			}
			
		}
		fclose($arquivo);
?>

No lugar do insert.txt vai ser o nome do seu arquivo;


Nesse caso ele vai sempre pegando o resultado do anterior, se você quiser que não apareça os resultados anteriores é só descomentar o $string ="";

Compartilhar este post


Link para o post
Compartilhar em outros sites

:seta: Filesystem Functions

$filename = 'file.txt';
$old_file = fopen( $filename, 'r' );
$new_file = fopen( 'file_part_01.txt', 'w' );
$part  = 1;
$lines = 3;

for( $i = 0; ! feof( $old_file ); $i++  )
{
    if( $i != 0 and ( $i % $lines ) == 0 )
    {
        fclose( $new_file );
        $new_file = fopen( sprintf( 'file_part_%02d.txt', ++$part ), 'w' );
    }
    
    fwrite( $new_file, fgets( $old_file ) );
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Noss pessoal muito obrigado pela prestatividade de vcs, a respostas dos amigos caiu como uma luva aqui pra mim, muito obrigado mesmo pessoal....

 

Valeu Carlos Coelho e Daniel

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.