Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    101

    unlink multiplo e nome file variabile

    Saluti a tutti.
    non riesco a trovare la strada giusta per fare questo:

    devo eliminare delle immagini relative a dei prodotti, ogni prodotto puo avere da 0 a 6 img identificate tramite l'ID del prodotto (la prima) + il suffisso a,b,c,d,e, (per le altre) quindi riassumendo e ipotizzando che ci siano ad es. 4 img potrei avere:
    001.jpg
    001a.jpg
    001c.jpg
    001d.jpg
    ho saltato la b perchè è una situazione che potrebbe verificarsi poichè le lettere non vengono assegnante progressivamente ma in funzione della posizione che occupano le img.

    Nel caso di un singolo file avrei fatto

    nome_file = $ID.jpg (oppure nome_file = $IDa.jpg se trattavasi di img successiva alla prima)
    unlink nome_file

    La mia difficoltà sta nel capire come gestire la cosa:
    dovrei fare una serie di if per le 6 possibilità ?
    o fare un ciclo while ma non so come poter gestire le casistiche a,b,c, etc.

    Spero di non essere stato ostico nello spiegarmi e Vi ringrazio fin d'ora per l'aiuto

  2. #2
    Puoi usare glob() con le wildcards (*) per trovare in un array tutti i file, tipo "001*.jpg" .

    Ciao

  3. #3
    Utente di HTML.it L'avatar di Ceras
    Registrato dal
    Oct 2009
    Messaggi
    141
    Originariamente inviato da stroppi
    Puoi usare glob() con le wildcards (*) per trovare in un array tutti i file, tipo "001*.jpg" .

    Ciao
    Ovviamente dipende dalle specifiche (numero di cifre fisso o variabile), ma in questo modo si potrebbero eliminare anche immagini con un id diverso come "0011.jpg".

    Io opterei con un processo controllato da una piccola struttura dati (array), che poi potrai anche personalizzare facilmente in un futuro.

    Codice PHP:
    function deleteImagesById($id) {
        
        
    $path "";
        
    $suffissi = array("","a","b","c","d","e");
        
        for (
    $i=0$i<count($suffissi); $i++) {
            
    $filename $path $id $suffissi[$i] . ".jpg";
            if (
    is_file($filename)
                
    unlink($filename);            
        }

    Modificando l'array $suffissi potrai usare tutti i suffissi che vuoi
    p.s. la condizione is_file controlla che il file effettivamente esista, prima di eliminarlo

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    101
    Grazie infinite a tutti e due, come disse qualcuno...... sono fuori dal tunnel!!

    credo che adottero' la tua soluzione Ceras considerato che sapendo a priori i possibili suffissi e che non sono neanche tanti sia quella piu' veloce.

    Anche quella di Stroppi poteva andare bene, bastava avere l'accortezza di settare il campo ID ZEROFILL cosi' da avere un numero di cifre fisso prima di *.

    Grazie ancora ragazzi
    Ciao

  5. #5
    Di niente

    Alternativamente potevi anche mettere un carattere speciale, ad esempio "_"

    Quindi le richerche sarebbero state "001_*.jpg"

    Credo che così si risolvesse il giusto problema di "0011".

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