Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Unire più files

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    48

    Unire più files

    Ciao a tutti

    ho provato a cercare sul forum ma non ho trovato nulla, chiedo scusa se ho sbagliato qualcosa.
    Avrei un dubbio sul merge di più files, mi spiego meglio, ho diversi files di testo e devo unirli in un unico file ma non riesco.
    O meglio, riesco a generare il file ma è vuoto.

    Il codice che uso è il seguente:
    codice:
     
    $files = glob($cartella_upload.'/estratti/*.*');
    $out = fopen($cartella_upload.'/estratti/matrix.atc', 'w');
    foreach($files as $file){
    $in = fopen($file, "r");
    while ($line = fread($in)){
    fwrite($out, $line);
    }
    fclose($in);
    fclose($out);
    mi viene generato il file matrix.atc come voglio ma risulta vuoto mentre i file uniti hanno almeno una riga.

    Mi date una mano a capire dove sbaglio?

    Grazie a tutti

    Marco

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Intanto fclose($in); dovresti metterlo dentro il ciclo foreach (che tra l'altro non capisco dove venga chiuso), come ultima istruzione, altrimenti chiudi solo l'ultimo file aperto in lettura.
    Se foreach lo chiudi dopo il codice che hai postato, allora fclose($out) è nel posto sbagliato, va fuori dal foreach.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    48
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Intanto fclose($in); dovresti metterlo dentro il ciclo foreach (che tra l'altro non capisco dove venga chiuso), come ultima istruzione, altrimenti chiudi solo l'ultimo file aperto in lettura.
    Se foreach lo chiudi dopo il codice che hai postato, allora fclose($out) � nel posto sbagliato, va fuori dal foreach.
    Scusa, forse mancava una parentesi al codice che ho postato:

    codice:
                         $files = glob($cartella_upload.'/estratti/X*.ATC');
                         $out = fopen($cartella_upload.'/estratti/matrix.atc', 'w');
                         foreach($files as $file){
                            $in = fopen($file, "r");
                            while ($line = fread($in)){
                               fwrite($out, $line);
                         }
                               fclose($in);
                               fclose($out);
                         }
    ho provato a mettere fclose($out); dopo l'ultima parentesi graffa ma l'effetto e' sempre quello di creare un file vuoto.

    Altre idee? Grazie mille.

    Marco

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Questo cosa ti stampa?
    Codice PHP:
    $files glob($cartella_upload.'/estratti/X*.ATC');

    echo 
    "<pre>";
    print_r($files);
    echo 
    "</pre>"

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    48
    Ho risolto il problema cercando su san Google

    ecco il codice per chi ne avesse bisogno:

    codice:
                $Dir = $cartella_upload.'/estratti/';
                $OutputFile = $cartella_upload.'/estratti/matrix.atc';
                $Files = scandir ($Dir);
                $Open = fopen ($OutputFile, "w"); 
                foreach ($Files as $k => $v) {
                if ($v != "." AND $v != "..") {
                    $Data = file_get_contents ($Dir."/".$v);
                    fwrite ($Open, $Data);
                }
                unset ($Data);
                }
                fclose ($Open);
    non so come si mette il risolto nel titolo.

    Ciao e grazie ancora

    Marco

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.