una - php file_exists url http
file_exists() o is_readable() (4)
file_exists()
ois_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
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.
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:
Indica si existe y es un archivo normal (no un directorio).
Indica si existe y es un directorio (no un archivo).
Solución y Respuesta
Si quieres comprobar existe y:
- Es solo un archivo: Use
is_file()
- Es solo un dir: Use
is_dir()
- Es file o dir: use
file_exists()
Si desea comprobar que existe y es legible:
- Y es solo el archivo: Use
is_file()
yis_readable()
- Y es solo dir: Use
is_dir()
yis_readable()
- 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";
?
La respuesta es: is_readable () .
bool is_readable (string $ filename)
Indica si un archivo existe y si es legible.
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