Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885

    problema sull'invecchiamento (.old) dei file in una cartella dopo la copiatura!

    ciao a tutti, sto creando uno scriptino che copi dei file da una cartella ad un altra, fin qui tutto bene.

    Ora vorrei 'invecchiare' i file rimasti nella cartella originaria dei file, il problema è che ciò avviene , ma il file 'n1' lo 'invecchia 2 volte'.

    Il mio risultato finale momentaneamente è :

    pippo.csv.old.old.old
    minni.txt
    mimmo.csv.old.old
    fra.txt
    axis.txt
    topolino.old

    come posso fare in maniera che nn invecchi 2 volte ?

    secondo problema il file una volta che lo invecchia mi resta il suffisso csv, cosi che quando lo script copia il file sucessivo mi inserisce anche il precedente nella cartella destinataria, questo accade perchè ho un array che verifica se il suffisso csv è presente , come posso fare per eliminare il suffisaso e meterci al suo posto .old?

    vi posto lo script!

    Codice PHP:

    $opendir 
    opendir ("path assoluta");
    $destcsv "export/";

    $i// numero di file scaricabili
    while($filedir readdir($opendir)){
        
    $destinazione_finale $destcsv."".$filedir;//destinazione finale del file
        //se sono file nascosti non li considero
        
    if ($filedir == "."){continue;}
        if (
    $filedir == ".."){continue;}
        
        
        
    $elementi=explode('.',$filedir);
        
    $conto count ($elementi);
        
    $conto $conto+1;
        
        echo 
    "Conteggio dei file nella directory = N&ordm".$conto;
        echo 
    "

    "
    .$destinazione_finale."
    "
    ;
        if (
    $elementi[1]=='csv'){
            
    $i++;
            
    $copia copy("path assoluta".$filedir$destinazione_finale);
            echo 
    "valore copia = "var_dump($copia); echo "
    "
    ;
            if (!
    $copia){
                echo 
    "Copia FALLITA 
    "
    ;
                
    $destlog "path assoluta/test_copia".$oggi_data.".txt";
                
    $openlog fopen($destlog,"a");
                
    $testo "Il file : ".$filedir." non è stato copiato nella cartella ".$destcsv."\r\n";
                
    $scrivo =fwrite($openlog ,$testo);
                
    fclose($openlog);
            }else{
                echo 
    "Copia RIUSCITA 
    "
    ;
                
    $destlog "path assolutatest_copia1".$oggi_data.".txt";
                
    $openlog fopen($destlog,"a");    
                
    $testo "Il file : ".$filedir."COPIA OK ".$destcsv."\r\n";
                
    $scrivo =fwrite($openlog ,$testo);
                
    fclose($openlog);
                
    $rename rename ("path assoluta".$filedir "path assoluta".$filedir.".old");
            }
        }
    }

    closedir($opendir); 

  2. #2
    Invece di utilizzare l'explode e controllare
    Codice PHP:
    if ($elementi[1]=='csv') {
    //codice

    Utilizza substr per controllare gli ultimi tre caratteri della stringa nome

    Codice PHP:
    $estensione=substr($filedir,-3);
    if (
    $estenszioen=="csv") {
    //invecchialo
    } else {
    //non invecchiarlo ulteriormente

    Utilizzando l'explode con il "." la struttura manterrà sempre il csv come elemento 1 di $elementi.
    In alternativa utilizzando il tuo codice dovresti controllare l'ultimo elemento di $elementi.

    Codice PHP:
    $elementi=explode('.',$filedir);
    $ultimo=count($elementi);  
    $ultimo--;
        
    echo 
    "Conteggio dei file nella directory = N&ordm".$conto;
    echo 
    "

    "
    .$destinazione_finale."
    "
    ;
    if (
    $elementi[$ultimo]=='csv'){ 
    //codice

    ...il passato lo rimpiange chi non ha futuro...
    Lega LFA | Alessio Corse | a2area

  3. #3
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    Grazie mille , non avevo pensato al substr, ottimo e funzionante!

    Grazie ancora ciao!

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.