Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    12

    Mi aiutate a correggere il codice?

    Salve a tutti. Ho trovato uno script in php che mi cancella dei file .jpg vecchi piu' di 20 minuti dal server ftp. In pratica aprendo una pagina php nel server viene avviato questo script che esegue la cancellazione.
    Questo il codice:

    <?php
    // Define the folder to clean
    // (keep trailing slashes)
    $captchaFolder = 'prova/';
    _
    // Filetypes to check (you can also use *.*)
    $fileTypes = '*.jpg';
    _
    // Here you can define after how many
    // minutes the files should get deleted
    $expire_time = 20;
    _
    // Find all files of the given file type
    foreach (glob($captchaFolder . $fileTypes) as $Filename) {
    _
    // Read file creation time
    $FileCreationTime = filectime($Filename);
    _
    // Calculate file age in seconds
    $FileAge = time() - $FileCreationTime;
    _
    // Is the file older than the given time span?
    if ($FileAge > ($expire_time * 60)){
    _
    // Now do something with the olders files...
    _
    print "The file $Filename is older than $expire_time minutes\n";
    _
    // For example deleting files:
    //unlink($Filename);
    }
    _
    }
    ?>

    Purtroppo aprendo la pagina che dovrebbe avviare lo script mi appare questo errore (l'ftp e' su altervista):

    Parse error: syntax error, unexpected T_VARIABLE in /membri/ftptest/index.php on line 7

    Gentilmente qualcuno puo' aiutarmi a farlo funzionare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    quale ti risulta essere la riga 7?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    12
    Originariamente inviato da eiyen
    quale ti risulta essere la riga 7?
    Bella domanda, non sono molto pratico e non so come vengono calcolate le righe, dreamweaver mi dice che e' questa:

    $fileTypes = '*.jpg';

    Grazie mille della tua risposta.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    cosa sono gli "underscore" all'inizio di alcune righe?

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    12
    Originariamente inviato da eiyen
    cosa sono gli "underscore" all'inizio di alcune righe?
    Credo dei commenti....anche se, mi sembra, in php dovrebbero essere /* ...*/ o sbaglio?

  6. #6
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Se lo script è esattamente quello che hai postato... canclla gli underscore (come osservato da eiyen) e rimuovi le parentesi graffe sulle ultime righe, perchè non vengono aperte da nessuna parte.

    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    12
    Originariamente inviato da Grino
    Se lo script è esattamente quello che hai postato... canclla gli underscore (come osservato da eiyen) e rimuovi le parentesi graffe sulle ultime righe, perchè non vengono aperte da nessuna parte.

    Grande, rimuovendo i commenti...funziona!!
    Grazie mille a tutti.

    Mi serve solo un'ultimo ritocco affinche' sia perfetto.

    Questa riga indica la cartella in cui saranno cancellati i file:
    $captchaFolder = 'temp/..';

    ma e' possibile dire allo script di eseguire la cancellazione anche nelle sottodirectory di temp/ ??

    Grazie ancora.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    non "banalmente", nel senso che dentro il ciclo bisognerebbe iterare per ogni sottocartella... in pratica dovresti spostare il codice di cancellazione in una funzione e se l'elemento letto è una cartella deve richiamare se stessa, cioè questo:

    Codice PHP:
    foreach (glob($captchaFolder $fileTypes) as $Filename) {
      
    $FileCreationTime filectime($Filename);
      
    $FileAge time() - $FileCreationTime;
      if (
    $FileAge > ($expire_time 60)){
        print 
    "The file $Filename is older than $expire_time minutes\n";
        
    // For example deleting files:
        //unlink($Filename);
      
    };
    }; 
    diventa questo:
    Codice PHP:
    function unlinkfolder($folder) {
      if (
    is_folder($folder)) {
        foreach (
    glob($captchaFolder $fileTypes) as $Filename) {
          if (
    is_folder($Filename)) unlinkfolder($folder); // ITERATION
          
    $FileCreationTime filectime($Filename);
          
    $FileAge time() - $FileCreationTime;
          if (
    $FileAge > ($expire_time 60)){
            print 
    "The file $Filename is older than $expire_time minutes\n";
            
    // For example deleting files:
            //unlink($Filename);
          
    };
        };
      };
    };
    unlinkfolder(glob($captchaFolder $fileTypes)); 
    Bisogna controllare bene i percorsi, eventualmente... !!

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    12
    Originariamente inviato da eiyen
    non "banalmente", nel senso che dentro il ciclo bisognerebbe iterare per ogni sottocartella... in pratica dovresti spostare il codice di cancellazione in una funzione e se l'elemento letto è una cartella deve richiamare se stessa


    diventa questo:
    Codice PHP:
    function unlinkfolder($folder) {
      if (
    is_folder($folder)) {
        foreach (
    glob($captchaFolder $fileTypes) as $Filename) {
          if (
    is_folder($Filename)) unlinkfolder($folder); // ITERATION
          
    $FileCreationTime filectime($Filename);
          
    $FileAge time() - $FileCreationTime;
          if (
    $FileAge > ($expire_time 60)){
            print 
    "The file $Filename is older than $expire_time minutes\n";
            
    // For example deleting files:
            //unlink($Filename);
          
    };
        };
      };
    };
    unlinkfolder(glob($captchaFolder $fileTypes)); 
    Bisogna controllare bene i percorsi, eventualmente... !!
    Purtroppo sembra non andare. Se lo script precedente mi elenca almeno i file ricercati, questo mi da solo pagina bianca....

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    devi abiilitare gli errori! ci sono alcune sviste... p.es. if (is_folder($Filename)) unlinkfolder($folder); va corretto in if (is_folder($Filename)) unlinkfolder($Filename);... per i percorsi: dovresti stampare a video i percorsi perchè secondo me bisogna aggiungerli in testa

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.