kostenloser Webspace werbefrei: lima-city


19MB große Datei splitten

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    infinitywar

    infinitywar hat kostenlosen Webspace.

    Weiß einer wie ich eine 19MB große .sql Datei splitten kann damit ich sie auf Lima-City hochladen kann?
    Denn dort sind nur 10MB erlaubt.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Mit der Hand.

    Bei ungefähr der Hälfte einfach rauskopieren und in eine neue Textdatei kopieren. Natürlich dabei darauf achten, dass du das SQL Statement nicht auseinander nimmst.

    Die neue Datei dann wieder auf .sql enden lassen.

    Öffnen kannst du jede sql Datei mit jedem Text oder HTML-Editor
  4. Autor dieses Themas

    infinitywar

    infinitywar hat kostenlosen Webspace.

    Danke so klappt es auch, habe aber ein Programm gefunden gerade :p
  5. Beispiel ... Speichern als Teil-Dateien mit jeweils max. n Zeilen

    <?php 
    // --------------------------------------------------------------- 
    
    $dateiname = 'data/grosse_datei.txt';   // ---- Quell-Datei ----
    
    $file_ext = '.txt';  	// ---- Dateiendung der Quell-/Ziel Datei ---- 
    $save_dir = 'data'; 	// ---- Speicher-Pfad (Ordner-Name) ---- 
    $maxlines = 1000; 		// ---- Anzahl der Zeilen je Parts Datei ---- 
    
    
    ## $rowlen = 10240;  	// ---- max. länge einer Zeile ---- 
    
    $datei = 1; 	// ---- Start Datei Nummer ---- 
    $zeile = 0; 	// ---- Start Zeilen je Block ---- 
    $allez = 0; 	// ---- Start Zeilen Gesamt ---- 
    $nrpad = 4; 	// ---- Anzahl Stellen Parts-Nr ($dnr) ---- 
    
    $dnr = str_pad($datei,$nrpad,'0',STR_PAD_LEFT); 
    
    $fbase =  basename($dateiname,$file_ext);    // ---- Dateiname ohne Pfad und ohne Extension ---- 
    
    $dateiliste = array(); 
    
    $save_dir = trim($save_dir,'/'); 
    
    $neu_datei = $save_dir.'/parts_'.$fbase.'_'.$dnr.$file_ext; 
    
    $dateiliste[] = $neu_datei; 
    
    echo "<br />Parts Datei (Nr: ".$dnr."): ".$neu_datei."\n"; 
    
    $fpr = @fopen($dateiname, "r") or die ('Kann Datei nicht lesen.');
    
    $fpx = @fopen($neu_datei, "w+") or die ('Kann Datei nicht schreiben.');
    
    ## while($line = fgets($fpr, $rowlen)) { 
    while($line = fgets($fpr)) { 
    	$zeile++;
    	if($zeile == $maxlines){ 
    		fclose($fpx); 	// ---- alte parts datei schliessen ---- 
    		$datei++;
    		
    		$dnr = str_pad($datei,$nrpad,'0',STR_PAD_LEFT); 
    		$neu_datei = $save_dir.'/parts_'.$fbase.'_'.$dnr.$datei_ext; 
    		$dateiliste[] = $neu_datei; 
    		
    		echo "<br />Parts Datei (Nr: ".$dnr."): ".$neu_datei."\n";  
    		
    		$fpx = @fopen($neu_datei, "w+") or die ('Kann Datei nicht schreiben.');
    		$zeile = 0; 	// ---- Zeilen Zähler zurücksetzen ---- 
    	}
    	fwrite($fpx,$line); // ---- in neue datei schreiben ---- 
    	$allez++; 
    }
    
    fclose($fpr);
    
    
    // --------------------------------------------------------------- 
    
    echo "<br />\n"; 
    echo "<br />\n"; 
    echo "<br />Zeilen Gesamt: ".$allez."\n"; 
    echo "<br />max. Zeilen pro Datei: ".$maxlines."\n"; 
    echo "<br />Dateien Gesamt: ".$datei."\n"; 
    echo "<br />\n"; 
    echo "<br />\n"; 
    
    print "<pre style=\"margin:4px; padding:4px; color:#000000; background:#DEDEDE; text-align:left;\">\n"; 
    print_r($dateiliste); 
    print "</pre>\n"; 
    
    echo "<br />\n"; 
    echo "<br />\n"; 
    echo "<br />\n"; 
    
    // --------------------------------------------------------------- 
    ?>


    Hinweis zu: $nrpad
    Die Zeile im Code:
    $nrpad = 4; 	// ---- Anzahl Stellen Parts-Nr ($dnr) ----

    .. gibt die Anzahl der Stellen (=Ziffern) für Nummerierung der Parts-Dateien an

    BSP: die Quell-Datei hat 41350 Zeilen, je Parts-Datei soll max. 1000 Zeilen haben
    dann werden 42 Dateien erstellt (letzte Datei hat dann nur 350 Zeilen)
    42 ---> eine 2 Stellige Zahl --->
    $nrpad = 2;
    genügt dann ... :)

    BSP: die Quell-Datei hat 41350 Zeilen, je Parts-Datei soll max. 100 Zeilen haben
    dann werden 414 Dateien erstellt (letzte Datei hat dann nur 50 Zeilen)
    414 ---> eine 3 Stellige Zahl --->
    $nrpad = 3;
    genügt dann ... :)


    Hinweis mit: $rowlen würde man die max. Zeilen-Länge beim Auslesen der Quell-Datei angeben,
    wenn die Zeilen relativ kurz sind, dann genügt da auch
    $rowlen = 1024;

    oder halt noch geringerer Wert, je nach bekannter max. Zeichen-Länge einer Zeile

    wenn man bei fgets()
    $rowlen
    weg lässt, wird bis zum Zeilen-Ende ausgelesen

    habe die Variante mit
    $rowlen
    (Zeilen-Länge) aus-kommentiert drin gelassen
    wenn man die max. Zelen-Länge kennt und verwendet ist fgets() ein wenig effektiver (schneller)



    Beitrag zuletzt geändert: 11.2.2013 13:42:53 von meinkredit
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!