Desencadenando el sitio web de “guardar como”, la funcionalidad completa desde PHP.
Estoy utilizando el siguiente código para descargar una página web con éxito:
header('Content-Type: text/html');
header('Content-Disposition: attachment; filename="'.$title.'"'); // necesario para el cuadro de diálogo de descarga
print $content;
Sin embargo, obtengo una única página estática sin recursos de imágenes. Lo que esperaba era descargar la carpeta completa como lo haría si se utiliza la función guardar como de un navegador.
El código anterior dispara la ventana emergente que se muestra a continuación:
He encontrado varios hilos que sugieren utilizar exec(wget url)
pero descarga directorios enteros en mi estructura de archivos y causa mucha confusión al duplicar múltiples archivos. Curl tampoco dio los resultados deseados.
Con ambos wget y curl, ninguno de ellos presentó la ventana emergente que es esencial para que el usuario renombre la descarga como considere adecuado.
davy.ai
Solución para descargar una página web con todos sus recursos
Para descargar una página web junto con todos sus recursos como imágenes, hojas de estilo, scripts, etc., puedes utilizar el siguiente enfoque:
file_get_contents()
para obtener el contenido HTML de la página web.DOMDocument
osimple_html_dom
para analizar el HTML y extraer todas las URL de los recursos.file_put_contents()
ocopy()
.Aquí hay un ejemplo de código que implementa el enfoque anterior:
Este código descarga todos los recursos de la página web y los comprime en un único archivo, que luego se envía como un archivo adjunto. El usuario puede guardar el archivo adjunto con cualquier nombre deseado.