En este post vamos a ver un problema que pasa con file_get_contents
en PHP cuando usamos dicha función para hacer una petición http o queremos mostrar el contenido de una página y la descargamos con esta función.
Recuerda que igualmente podemos usar file_get_contents
para hacer una petición HTTP usando stream_context_create.
Bien, veamos qué hacer si file_get_contents no funciona en PHP, no muestra errores ni avisos o devuelve false
sin razón aparente.
En algunos servidores mal configurados, la función va a fallar silenciosamente pero devolverá false
. Lo primero que debemos hacer es comprobar en dónde está el problema.
Si es una petición HTTP podemos comprobar usando otra librería o método para comprobar que el servidor está bien (como Postman). En caso de que sí, pasemos al siguiente paso.
Normalmente file_get_contents
falla porque, por seguridad o configuración, allow_url_fopen
y/o allow_url_include
está deshabilitado en el php.ini.
Lo único que hay que hacer es habilitarlo y reiniciar el servidor en algunos casos. Se debe ver así:
;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;
; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
; http://php.net/allow-url-fopen
allow_url_fopen=On
; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
; http://php.net/allow-url-include
allow_url_include=On
Y con eso debería de funcionar. Yo tuve ese problema recientemente al implementar un Captcha con PHP.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.
Ver comentarios
Muchas gracias ahora entiendo por que no funcionaba en el servidor, efectivamente era eso, te debo una <3 igual queria poner el captcha jajaja
Hola es posible que el fallo lo genere el firewall de Windows ? Ya probé las dos entradas comentadas acá y sigue sin funcionar