file_exists() o is_readable()

Che deve essere utilizzato quando si desidera includere un file PHP?

if(file_exists($file) require "$file";

o

if(is_readable($file) require "$file";

?

 

4 Replies
  1. 26

    file_exists() o is_readable()

    Che deve essere utilizzato quando si desidera includere un file PHP?

    Questo dipende se vuoi sapere se solo un file o una directory esistente, o se va bene, e se avete bisogno di controllare se leggibile o meno.

    A volte ti interessano solo i file e/o directory esiste, e non c’è bisogno di leggere, a volte si ha anche bisogno di leggere.

    Opzioni

    file_exists()

    Controlla se un file o directory esiste.

    Se esplicitamente solo voglio sapere se un file esiste, questo sarà il ritorno di falsi positivi come restituirà true se è una directory.

    is_readable()

    Indica se un file o directory esiste ed è leggibile.

    Se esplicitamente solo voglio sapere se un file è leggibile, è probabile che questo ritorno di falsi positivi come potrebbe restituire true se è una directory.


    Opzioni aggiuntive non hai menzionato, ma probabilmente bisogno di:

    is_file()

    Dice se esiste ed è un normale file (non è una directory).

    is_dir()

    Dice se esiste ed è un directory (non è un file).

    Soluzione & Risposta

    Se si desidera controllare esiste e:

    1. È solo un file: Utilizzare is_file()
    2. È solo una dir: Utilizzare is_dir()
    3. È il file o dir: Utilizzare file_exists()

    Se si desidera controllare esiste ed è leggibile:

    1. E solo file: Utilizzare is_file() e is_readable()
    2. Ed è solo dir: Utilizzare is_dir() e is_readable()
    3. E file o dir: Utilizzare is_readable()

    Non è necessario utilizzare file_exists() e is_readable() insieme perché is_readable() controlla anche se file_exists().

    Associazione is_readable() con is_file() o is_dir() è solo per verificare se è leggibile specificamente su un solo file o specificamente su una directory.


    Affidarsi richiedono

    Come con la maggior parte PHP e “qual è l’approccio migliore/funzione/etc”, dipende dalla situazione.

    Affidamento solo su require da gestire se il sistema si blocca o non non è molto utile. Immaginate il file richiesto non è disponibile, quindi PHP ferma richiedono non riesce, ma il file è semplicemente un articolo di immagine o di un utente, avatar – credete davvero di non voler servire la navigazione del sito, il logo, link, tutti i tipi di pagina di testo e contenuti solo a causa di un articolo mancante immagine?

    VITALE:

    Se il file è un file di connessione al database di classe, che permette di servire l’intero contenuto della pagina, quindi il file non c’probabilmente richiede un blocco del sistema.

    Naturalmente, allora si dovrebbe avere un qualche tipo di strategia di uscita, come servire una pagina 404, o un messaggio di errore “mi Dispiace, c’è stato un guasto, vedremo in essa”, etc.

    NON VITALE:

    A volte è valido per il file non esiste, o almeno non dannoso per il resto dell’applicazione.

    Come se un file di immagine non esiste, ti potrebbe servire un messaggio o immagine di default, come un utente che avatar sarà solo un avatar di default se il loro non è stato trovato.

    • Grande e migliore risposta finora! +1
  2. 9

    La risposta è: is_readable().

    bool is_readable ( string $filename )

    Indica se un file esiste ed è
    leggibile.

    http://us3.php.net/manual/en/function.is-readable.php

    • Sì, ma in seguito si dice “Restituisce TRUE se il file o la directory specificato dal nome file esiste ed è leggibile, FALSE altrimenti.”
    • Questa è la risposta CORRETTA. L’applicazione “&& is_file($filename)” per trasparenza aggiuntivo sopra le cartelle è consigliato in quanto restituiscono true.
  3. 6

    Se la vostra intenzione di require un file, non c’è nessun punto nel controllo di errore. Il punto di utilizzo require invece di include è hault esecuzione dello script quando il file non esiste.

    Se non si cura se il file esiste, basta usare include.

    • ma che cosa se non sei sicuro che il file esiste?
    • require è utilizzato per verificare che il file c’è, prima di continuare. Se il file richiesto, verrà generato un errore se il file non c’e’. Se il file non è fondamentale per la vostra pagina, quindi utilizzare include.
    • quindi utilizzare file_exists
  4. 4
    if(is_file($file) && is_readable($file))

    perché is_readable è vero per le directory anche

Lascia un commento