Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    60

    Controllo estensione file

    Ciao a tutti,
    ho bisogno di una semplicissima funzione che però non so come scrivere essendo alle prime armi con PHP.

    Provo a scrivere a parole ciò che dovrebbe fare:

    A seconda dell'estensione del file presente in una directory che nel mio script viene richiamata con :
    Codice PHP:
    $directory.$value 
    lo script dovrebbe scrivere una echo.

    Cioè se ad esempio il file è un .pdf il risultato sarà "Questo file è un pdf"

    Qualcuno sa dirmi come fare?

  2. #2
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Ciao. Puoi trovare nella stringa contenente il nome del file la posizione dell'ultimo punto "." e leggere il testo da lì in poi per prelevare l'estensione.

    Codice PHP:
    $pos strrpos($directory.$value"."); // leggo la posizione dell'ultimo punto presente nel nome del file
    $ext substr($directory.$value$pos+1); // leggo la stringa dalla posizione $pos + 1
    echo 'Questo file è un '.$ext

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    60
    Grazie prima di tutto,

    comunque io cercavo di fare un'altra cosa ma mi sono spiegato male faccio un esempio più chiaro:

    Avendo un insieme di file con determinate estensioni, ad esempio ".pdf, .odt, .doc ecc." con le estensioni indicate nello script deve scrivere "Pino" altrimenti deve scrivere "Giovanni".

    E' un po diversa da quello che chiedevo all'inizio ma il concetto dovrebbe essere più o meno quello se non mi sbaglio.

  4. #4
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Originariamente inviato da matmaz
    Grazie prima di tutto,

    comunque io cercavo di fare un'altra cosa ma mi sono spiegato male faccio un esempio più chiaro:

    Avendo un insieme di file con determinate estensioni, ad esempio ".pdf, .odt, .doc ecc." con le estensioni indicate nello script deve scrivere "Pino" altrimenti deve scrivere "Giovanni".

    E' un po diversa da quello che chiedevo all'inizio ma il concetto dovrebbe essere più o meno quello se non mi sbaglio.
    Non ho capito bene, puoi spiegare meglio e in modo dettagliato?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    60
    Originariamente inviato da costi31
    Non ho capito bene, puoi spiegare meglio e in modo dettagliato?
    Allora se lo script è un .pdf, .doc, .exe allora nell' echo dirà "Pino" ad esempio, mentre se il file non corrisponde ad uno di quelli elencati deve scrivere "Giovanni".

    E' più chiaro?

  6. #6
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Codice PHP:
    $path_parts pathinfo($value);

    echo 
    "questo file è un ".$path_parts['extension']; 

  7. #7
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Originariamente inviato da matmaz
    Allora se lo script è un .pdf, .doc, .exe allora nell' echo dirà "Pino" ad esempio, mentre se il file non corrisponde ad uno di quelli elencati deve scrivere "Giovanni".

    E' più chiaro?
    Quindi dato un insieme di estensioni tu vuoi controllare che l'estensione di un certo file rientri tra quelle? Se è così crei un array con le estensioni ammesse e controlli che quella del tuo file ne faccia parte tramite la funzione in_array(). Per leggere l'estensione del file comunque fai come ha detto bstefano79 che è molto meglio.

    Codice PHP:
    $path_parts pathinfo($value);
    $ext $path_parts['extension'];

    $ext_insieme = array('pdf''doc''exe');

    if (
    in_array($ext$ext_insieme)) {
        echo 
    "L'estensione del file rientra nell'insieme di quelle ammesse.";
    }
    else {
        echo 
    "L'estensione del file non rientra nell'insieme.";


  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    60
    Originariamente inviato da costi31
    Quindi dato un insieme di estensioni tu vuoi controllare che l'estensione di un certo file rientri tra quelle? Se è così crei un array con le estensioni ammesse e controlli che quella del tuo file ne faccia parte tramite la funzione in_array(). Per leggere l'estensione del file comunque fai come ha detto bstefano79 che è molto meglio.

    Codice PHP:
    $path_parts pathinfo($value);
    $ext $path_parts['extension'];

    $ext_insieme = array('pdf''doc''exe');

    if (
    in_array($ext$ext_insieme)) {
        echo 
    "L'estensione del file rientra nell'insieme di quelle ammesse.";
    }
    else {
        echo 
    "L'estensione del file non rientra nell'insieme.";

    Perfetto proprio quello che volevo, ma mi trascrive anche la parola "Array" prima delle due echo.
    Come si rimuove?

  9. #9
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    posta il codice non siamo dei maghi con la palla di vetro

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    60
    Originariamente inviato da bstefano79
    posta il codice non siamo dei maghi con la palla di vetro
    Codice PHP:
    echo "<td width='25%'>"$path_parts pathinfo($directory.$value); 
    $ext $path_parts['extension']; 

    $ext_insieme = array('pdf''doc''exe'); 

    if (
    in_array($ext$ext_insieme)) { 
        echo 
    "<a href='#' class='button'><table border='0' cellpadding='0'>
      <tr>
        <td>[img]img/check.png[/img]</td>
        <td>Il file è sicuro</td>
      </tr>
    </table>
    </a>"


    else { 
        echo 
    "<a href='#' class='button'><table border='0' cellpadding='0'>
      <tr>
        <td>[img]img/alert.png[/img]</td>
        <td>Il file potrebbe danneggiare il computer</td>
      </tr>
    </table>
    </a>"

    }  
    "</td>"
    Questa è la parte di codice che vi dovrebbe servire.

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.