Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 15 su 15
  1. #11
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    228
    $_GET['del'] cosa contiene?
    il vettore non ti serve, era solo d'esempio

  2. #12
    $_GET['del'] contiene il nome del file da cancellare privo di estensione, in pratica nella pagina che elenca le immagini presenti sul server, a ciascuna immagine è associato un link del tipo elimina.php?del=bg_XX dove al posto di XX vi è un numero. I numeri devono essere sempre ordinati e sempre a partire da 1, per altri motivi. Così la pagina di elimina.php (che contiene il codice di cui stiamo parlando) oltre a provvedere ad eliminare il file (dopo avergli dato l'estensione e la giusta posizione sul server) deve rinominare i file restanti con un nome bg_XX on le caratteristiche sopracitate.
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  3. #13
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    228
    Codice PHP:
    if(isset($_GET['del'])){// è un numero o è una stringa tipo bg_7 o bg_7.jpg? 
        //se è una stringa del tipo bg_NUMERO usi $k=split('bg_',$_GET['del'],2)[1]; 
        //->>>>puoi evitare losplit passando direttamente il numero in GET, ma devi rivedere il tuo sistema
        //ALTRIMENTI $k=$_GET['del'];
        
    $eliminato 0;
        
    $nome_bg $_GET['del'].".jpg";
        
    $directory "../immagini/sfondi/";
        
    $fildel $directory.$nome_bg;
        
    $i=0;//IMPORTANTE
        
    if (unlink($fildel)){
            
    //if(is_dir($directory)){->lo saprai se è una cartella o no*
            
    $dir opendir($directory); // apro la directory FIN QUI TUTTO OK!!!!!!!!!!!!!!!!
            
            
    while (false !== ($file readdir($directory))) {//li conti
                
    if ($file != "." && $file != "..") {
                    
    $file $directory.'/'.$file;
                    if(
    is_file($file)){ 
                        ++
    $i;
                    }
                }
            }
            
    $j=$k;
            while(
    $j<=$i){//parti da quello successivo a quello eliminato
                
    $file $directory.$j.".jpg" ;
                    
    rename($directory.$file$directory."bg_" $j-".jpg");  // lo rinomino e gli do il nome del primo, ciascuno successivo potrà prendere il nome del precedente perchè sarà l'unico a chiamarsi così
                
    ++$j;
            }
            
    //}VEDI SOPRA*
            
    $eliminato 1// cambio a 1 la variabile di conferma
        
    // fine if di cancellazione del file

    Ultima modifica di SimoX90; 07-01-2014 a 19:26

  4. #14
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    228
    Nel frattempo mi avevi risposto
    allora devi usare
    $k=split('bg_',$_GET['del'],2)[1];


    Sarebbe meglio (risparmi operazioni) passare in GET solo il numero, con
    elimina.php?del=XX (togli il bg_)
    e poi lo aggiungi qui
    $nome_bg ="bg_".$_GET['del'].".jpg"; (nel codice che ti ho postato)

    dal punto di vista computazionale unire delle stringhe è molto più veloce che splittarne una (ogni carattere è considerato come elemento di un array ed è un casino trovare i pezzi), inoltre, per quanto ridicolo, riduci di ben 24 bit la lunghezza dei tuoi url (anche questo è un risparmio )


    In generale, il codice che ti ho postato rinomina 0 file nel caso migliore (eliminato l'ultimo), ne rinomina la metà del tuo nel caso peggiore (il file eliminato è il primo)
    Ultima modifica di SimoX90; 07-01-2014 a 19:20

  5. #15
    Ti ringrazio veramente, questi si che sono consigli preziosi. Anche io avevo optato per utilizzare due cicli while, ma questi, come mi spieghi, sono decisamente più efficienti, dal momento che io invece rinomino in tutti i casi sempre tutti i files presenti 2 volte, a prescindere dal file che elimino.

    Grazie ancora
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

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 © 2026 vBulletin Solutions, Inc. All rights reserved.