working una saber not is_file is_dir file_exists existe eliminar ejemplos directorio crear archivo php include require file-exists

una - php file_exists url http



file_exists() o is_readable() (4)

file_exists() o is_readable()
¿Cuál debería usar cuando quiera incluir un archivo PHP?

Esto depende de si desea saber si solo existe un archivo o un directorio, o si está bien, y si necesita verificar si es legible o no.

A veces, solo le importa el archivo y / o el directorio, y no necesita leer, a veces también necesita leer.

Opciones

file_exists()

Comprueba si existe un archivo o directorio .

Si solo desea saber explícitamente si existe un archivo , esto devolverá falsos positivos y devolverá verdadero si es un directorio.

is_readable()

Indica si un archivo o directorio existe y es legible.

Si solo desea saber explícitamente si un archivo es legible, es probable que devuelva falsos positivos, ya que podría ser verdadero si se trata de un directorio.

Opciones adicionales que no ha mencionado, pero que probablemente necesite:

is_file()

Indica si existe y es un archivo normal (no un directorio).

is_dir()

Indica si existe y es un directorio (no un archivo).

Solución y Respuesta

Si quieres comprobar existe y:

  1. Es solo un archivo: Use is_file()
  2. Es solo un dir: Use is_dir()
  3. Es file o dir: use file_exists()

Si desea comprobar que existe y es legible:

  1. Y es solo el archivo: Use is_file() y is_readable()
  2. Y es solo dir: Use is_dir() y is_readable()
  3. Y es file o dir: Use is_readable()

No es necesario usar file_exists() e is_readable() juntos porque is_readable() también verifica si file_exists() .
El emparejamiento de is_readable() con is_file() o is_dir() es solo para verificar si es legible específicamente en un archivo solo o específicamente en un directorio.

Confiando en requerir

Al igual que con la mayoría de PHP y "cuál es el mejor enfoque / función / etc", depende del escenario.

Confiar solo en la necesidad de administrar si el sistema se bloquea o no no es realmente útil. Imagine que el archivo requerido no está disponible, por lo que PHP se detiene cuando se requiere un error, pero el archivo es simplemente una imagen del artículo o un avatar de usuario. de una imagen del articulo perdido

VITAL:
Si el archivo es una clase de conexión de base de datos, que permite la publicación de todo el contenido de la página, es probable que el archivo que no se encuentra allí requiera la detención del sistema.
Por supuesto, entonces debería tener algún tipo de estrategia de salida, como servir una página 404, o un mensaje de error: "Lo sentimos, hubo un error, lo investigaremos", etc.

NO VITAL:
A veces es válido que el archivo no exista, o al menos no sea perjudicial para el resto de la aplicación.
Por ejemplo, si un archivo de imagen no existe, puede mostrar un mensaje o una imagen predeterminada, por ejemplo, un avatar de usuario solo tendrá un avatar predeterminado si no se encuentra el suyo.

¿Cuál debería usar cuando quiera incluir un archivo PHP?

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

o

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

?



Si va a require un archivo, no tiene sentido revisar el error. El punto de usar require lugar de include es detener la ejecución del script cuando el archivo no existe.

Si no te importa si el archivo existe, solo usa include .


if(is_file($file) && is_readable($file))

Porque is_readable es cierto para directorios también