sistema sencillo pagina otra hipervinculo hacer formulario etiquetas enlace ejemplos como php html wget

pagina - login en php sencillo



¿Cómo puedo crear un sitio en php y hacer que genere una versión estática? (10)

Alternativamente a wget puedes usar (Win | Web) HTTrack ( sitio web ) para tomar la página estática. HTTrack incluso corrige los enlaces a archivos y documentos para que coincidan con la salida estática.

Para un proyecto en particular que tengo, no se permite ningún código del lado del servidor. ¿Cómo puedo crear el sitio web en php (con includes, condicionales, etc.) y luego convertirlo en un sitio html estático que puedo darle al cliente?

Actualización: Gracias a todos los que sugirieron wget. Eso es lo que usé. Debería haber especificado que estaba en una PC, así que agarré la versión de Windows desde aquí: http://gnuwin32.sourceforge.net/packages/wget.htm .


Cree el sitio de manera normal, luego use el software spidering para generar una copia HTML.

HTTrack es un software que he usado antes.


He hecho esto en el pasado al agregar:

ob_start();

En la parte superior de las páginas y luego en el pie de página:

$page_html = ob_get_contents(); ob_end_clean(); file_put_contents($path_where_to_save_files . $_SERVER[''PHP_SELF''], $page_html);

Es posible que desee convertir las extensiones .php a .html antes de copiar el HTML en los archivos. Si necesita generar varias páginas con variables, una opción bastante fácil es agregar el nombre de archivo con md5sum de todas las variables GET, solo necesita cambiarlas en el HTML también. Entonces puedes convertir:

somepage.php?var1=hello&var2=hullo

a

somepage_e7537aacdbba8ad3ff309b3de1da69e1.html

feo pero funciona.

A veces puede usar PHP para generar javascript para emular algunas características, pero eso no se puede automatizar muy fácilmente.


Lo hago en mi propio sitio web para ciertas páginas que están garantizadas de no cambiar: simplemente ejecuto un script de shell que podría ser hervido (warning: bash pseudocode):

find site_folder -name /*.static.php -print -exec Staticize {} /;

con Staticize siendo:

# This replaces .static.php with .html TARGET_NAME="`dirname "$1"`/"`basename "$1" .static.php`".html php "$1" > "$TARGET_NAME"


Si tiene un sistema Linux disponible, use wget :

wget -k -K -E -r -l 10 -p -N -F -nH http://website.com/

Opciones

  • -k: convertir enlaces a relativo
  • -K: mantener una versión original de los archivos sin las conversiones realizadas por wget
  • -E: renombra los archivos html a .html (si aún no tienen una extensión htm (l))
  • -r: recursivo ... por supuesto que queremos hacer una copia recursiva
  • -l 10: el nivel máximo de recursión. si tienes un sitio web realmente grande, es posible que necesites poner un número más alto, pero 10 niveles deberían ser suficientes.
  • -p: descarga todos los archivos necesarios para cada página (css, js, imágenes)
  • -N: activa el sellado de tiempo.
  • -F: cuando se lee una entrada de un archivo, forzarla a tratarse como un archivo HTML.
  • -nH: De manera predeterminada, wget coloca los archivos en un directorio con el nombre del nombre de host del sitio. Esto desactivará la creación de esos directorios de nombre de host y pondrá todo en el directorio actual.

Fuente: weblog de Jean-Pascal Houde


Si tiene varias páginas, con todo tipo de variables de solicitud y demás, probablemente una de las herramientas de spidering que los otros comentaristas han mencionado (wget, lwp-mirror, etc.) sería la solución más fácil y más robusta.

Sin embargo, si el número de páginas que necesita obtener es bajo, o al menos manejable , tiene algunas opciones que no requieren herramientas de terceros (no es necesario descontarlas JUSt porque son de terceros).

  1. Puede usar php en la línea de comando para hacer que salga directamente en un archivo.

    php myFile.php > myFile.html

    Usar este método podría ser doloroso (aunque podría ponerlo todo en un script de shell), y no le permite pasar variables de la misma manera (por ejemplo: php myFile.php?abc=1 no funcionará).

  2. Puede usar otro archivo PHP como un script de "compilación" que contiene una lista de todas las URL que desea y luego las toma mediante file_get_contents() o file() y las escribe en un archivo local. Al usar este método, también puede obtenerlo para verificar si el archivo ha cambiado ( md5_file() debería funcionar para eso), así sabrá qué darle a su cliente, en caso de que solo quiera actualizaciones.

  3. Además del n. ° 2, antes de escribir el resultado en el archivo, escanee para ver las URL locales y luego agréguelas a su lista de archivos para descargar. Mientras esté allí, cambie esas URL para vincularlas con lo que eventualmente nombrará su salida para que tenga una web funcional al final. Nota de precaución: si esto suena bien, probablemente pueda usar una de las herramientas que ya existen y hacer esto por usted.


Si usa modx, tiene una función incorporada para exportar archivos estáticos.


Una forma de hacerlo es crear el sitio en PHP de forma normal y tener un script que capture las páginas web (a través de HTTP; puede usar wget o escribir otro script php que solo use file () con URL) y guardarlos en el ubicaciones de sitios web públicos cuando está "hecho". Luego puede ejecutar el script nuevamente cuando decide cambiar las páginas nuevamente. Este método es bastante útil cuando tienes una base de datos que cambia lentamente y mucho tráfico, ya que puedes eliminar todas las consultas SQL en el sitio en vivo.


wget es probablemente el método más completo. Si no tiene acceso a eso, y tiene un diseño basado en plantilla, es posible que desee estudiar el uso de Savant 3. Recomiendo Savant 3 altamente sobre otros sistemas de plantillas como Smarty.

Savant es muy liviano y usa PHP como el lenguaje de plantilla, no como una sublangua patentada. El comando que desea buscar es fetch (), que "compilará" su plantilla y la colocará en una variable que puede mostrar.

http://www.phpsavant.com/


construya su sitio, luego use una herramienta de duplicación como wget o lwp-mirror para tomar una copia estática