Quiero descargar el contenido de una URL usando PHP, incluso si el código de respuesta HTTP es 404. file_get_contents
error, y no pude encuentra una respuesta usando Google. ¿Cómo puedo hacer esto?Descargar el contenido de una URL en PHP, incluso si devuelve un 404
Respuesta
Por defecto file_get_contents solo devuelve el contenido de las respuestas HTTP 200.
With curl you get the headers and the content separately.
A partir de PHP 5.0, también puede especificar un contexto para file_get_contents
, lo que le permite hacerlo sin depender de url (Véase la respuesta de Gordon).
Use cURL en su lugar. Permite un control mucho mayor y le permite leer cualquier contenido recuperado y el código de estado.
Tienes que configure the stream wrapper para ignorar los errores:
ignore_errors
boolean
buscar el contenido, incluso en los códigos de estado fracaso. Por defecto esFALSE
En otras palabras, hacen
echo file_get_contents(
'http://stackoverflow.com/foo/bar',
false,
stream_context_create(
array(
'http' => array(
'ignore_errors' => true
)
)
)
);
y obtendrá la página 404.
Si quieres que este es el comportamiento por defecto para los flujos HTTP, utilice
stream_context_set_default(
array('http' => array(
'ignore_errors' => true)
)
);
Cualquier llamada utilizando la envoltura de flujos HTTP utilizará estos ajustes a continuación, por ejemplo, puede simplemente hacer
echo file_get_contents('http://stackoverflow.com/foo/bar');
Si también desea obtener el response header, acaba de hacer
print_r($http_response_header);
después de la llamada. La variable se vuelve a llenar después de cada llamada con una envoltura de flujo http.
Paso 1: comprobar el código de retorno: $content = file_get_contents("websitelink"); if($content === FALSE) { // handle error here... }
Paso 2: suprimir la advertencia poniendo un operador de control de errores (es decir @
) delante de la llamada a file_get_contents(): $content = @file_get_contents($site);
- 1. Compruebe si NSURL devuelve 404
- 2. Magento "catálogo/producto/vista" URL devuelve 404
- 3. URL de autenticación de Pinterest que devuelve el error 404?
- 4. ¿Cómo comprobar si existe una URL o devuelve 404 con Java?
- 5. php: descargar contenido variable como archivo
- 6. PHP Obtenga el contenido de una URL o página
- 7. FileExists() devuelve falso, incluso si el archivo existe
- 8. ¿Por qué Request.QueryString ["ReturnUrl"] devuelve NULL, incluso si está presente en la URL?
- 9. Descargar archivo de URL a una cadena
- 10. ¿Cómo puedo realizar una solicitud GET sin descargar el contenido?
- 11. Codeigniter & PHP - forzando un 404?
- 12. Descargar la imagen de la URL usando el código php?
- 13. Devuelve contenido HTML como una cadena, URL dada. Función Javascript
- 14. Usar sed para reemplazar una cadena con el contenido de una variable, incluso si es un carácter de escape
- 15. ¿Cómo descargar un archivo de una URL en C#?
- 16. Obtener el contenido de la URL en Node.js con Express
- 17. Slim Framework siempre devuelve 404 Error
- 18. wget no se puede descargar - error 404
- 19. Descargar el archivo url de datos
- 20. descargar de forma sincrónica una imagen desde una URL
- 21. ¿Cómo alinear un div en la esquina inferior derecha de una página web, incluso si el contenido es menor?
- 22. Compruebe si hay 404 estados de error en jQuery
- 23. ¿Cuál es la mejor manera de verificar si existe una URL en PHP?
- 24. getHistorySize() devuelve 0 incluso en eventos MotionEvent.ACTION_MOVE
- 25. ¿Cómo puedo determinar si una URL redirecciona en PHP?
- 26. Descargar contenido de la página utilizando ajax jquery
- 27. error de mod_rewrite 404 if .php
- 28. Hacer clic Una vez Setup.exe devuelve 404 con IIS
- 29. Lectura de contenido HTML de una URL en OCaml
- 30. Cómo descargar una página web en php
enfoque interesante - pero ¿puede decir si recibió un error o una respuesta exitosa? – sagi
@sagi el código de respuesta estará en '$ http_reponse_header' – Gordon
+1 Gordon tiene razón, la variable $ http_response_header contiene exactamente lo que dice en la lata, que obviamente incluye el código de estado. –