Aplicación UpTimeCheck 0.1

UpTimeCheck es una aplicación muy simple desarrollada en PHP para verificar y registrar que diferentes sitios web se encuentren en línea.

Esta aplicación corre como un script de CLI (command line interface) y puede ejecutarse por demanda o a través de un proceso cron como es más conveniente. En la configuración pueden especificarse los sitios a revisar sin ningún límite o restricción respecto a su cantidad y algunos parámetros adicionales para personalizar su funcionamiento.

Para más información acerca de la aplicación por favor consultar el archivo README de la misma.

Como para todo en la vida, se reciben sugerencias y reportes de problemas.

Enlace: uptime_0.1.zip

Estructura de un documento XHTML

Cabecera XML con la codificación del contenido (estilo nuevo).

<?xml version="1.0" encoding="UTF-8" ?>

Tipo de documento XML. Utilizar sólo una de ellas.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

Cabecera HTML con el espacio de nombres y la especificación del lenguaje del contenido (estilo nuevo y antíguo).

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sp" lang="sp">
<head>

Etiqueta http-equiv para especificar el tipo de contenido y su codificación (estilo antíguo).

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Autor del documento.

<meta name="author" content="Jorge Iván Meza Martínez" />

Título de la página web.

<title>This is a demo</title>

Referencia a hoja de estilos externa.

<link href="/css/style.css" rel="stylesheet" type="text/css" />

Referencia a código JavaScript externo.

<script src="/js/script.js" type="text/javascript"></script>

Código JavaScript interno (inline).

<script type="text/javascript">
<![cdata[
    // Contenido del script.
]]>
</script>
</head>

Contenido de la página web.

<body>
    <!-- Contenido de la pagina -->
</body>
</html>

Consideraciones a tener en cuenta con XHTML

– Los documentos deben ser gramaticalmente correctos:

  • Todos los elementos deben tener una apertura y un cierre.
  • Debe respetarse el anidamiento jerárquico durante el cierre de etiquetas: <p><b>x</b></p>

– Los nombres de los elementos, los atributos y sus valores por defecto deben escribirse en minúsculas:

<input type=’submitvalue=’Enviar’ />

– Los valores de los atributos deben ir entre comillas, ya sean sencillas ( ‘ ) o dobles ( ” ).

<table rows=5class=tabla_principal></table>

– Los atributos no pueden ser minimizados, es decir, su valor no puede omitirse por ningún motivo.

<input type=”checkbox” checked=”checked” id=”caja_verificacion” />

– Todas las etiquetas deben cerrarse de una de las dos formas válidas.

Etiquetas vacías:

  • <hr></hr>
  • <hr />

Etiquetas no vacías:

  • <p>Este es un parrafo</p>

– Los elementos de bloque no pueden ser declarados dentro de elementos en línea. El siguiente ejemplo es inválido: <b><div class=’ejemplo’>Error</div></b>

– El atributo alt siempre debe estar presente en un elemento img. Los textos deben ir enmarcados en etiquetas p.

– Los siguientes carácteres: &, <, ]]> y, interfieren con el documento XHTML motivo por el cual deben reemplazarse, incluso en URLs, por sus correspondientes entidades: & y <.

– Para bloques extensos de código que adolecen de la situación anterior es posible enmarcar dichos códigos entre un bloque CDATA, por ejemplo para el uso de script y style en línea. Esta necesidad no aplica para documentos externos.

<script>
<![CDATA[
// … contenido del script
]]>
</script>

– Los elementos deben usar el atributo id como su identificador de fragmento, incluso los que históricamente habían tenido el atributo name.

– Los atributos desaprobados por HTML 4.01 no son incluidos por XHTML. Por ejemplo, la siguiente expresión es inválida: <font color=”red”>texto</font>, debe escribirse de la siguiente manera: <span style=”color: red”>texto</span>.

– Los siguientes elementos no pueden estar compuestos por los dispuestos a continuación.

  • <a> no puede contener elementos <a>.
  • <pre> no puede contener elementos <img>, <object>, <big>, <small>, <sub>, <sup>.
  • <button> no puede contener elementos <input>, <select>, <textarea>, <label>, <button>, <form>, <fieldset>, <iframe>, <isindex>.
  • <label> no puede contener elementos <label>.
  • <form> no puede contener elementos <form>.

Para preservar la compatiblidad se realizan las siguiente recomendaciones.

– Para los elementos vacíos cuyo cierre es inmediato, incluya un espacio antes de la terminación: />. Ejemplo: <br />.

– Para los elementos no vacíos utilice la forma ampliada de cierre, en lugar de la minimizada, aunque estos no tengan contenido. Ejemplo: <p> </p>.

– Se debe evitar el encerrar los fragmentos de código JavaScript y las hojas de estilo entre comentarios (<!– –>) toda vez que su contenido se ignorará y no serán tenidos en cuenta.

– Deben evitarse los espacios extra en blanco y los saltos de línea en el valor de los atributos ya que son interpretados de manera incosistente por los diferentes clientes.

– Los posibles carácteres a utilizarse para crear los nombres de los atributos id deben ser: las letras minúsculas y mayúsculas, los números del 0 al 9, los guiones (-), los guiones bajos (_), los dos puntos (:) y el punto (.). El valor debe empezar siempre con una letra.

– Utilice conjuntamente los atributos lang y xml:lang entendiéndose que xml:lang tiene precedencia. Ejemplo: <a href=”enlace.html” lang=”es” xml:lang=”es”>

– Para las entidades que así lo requieran utilice atributos id y name sabiendo que XHTML es compatible con el primero y no con el segundo.

– Para especificar la codificación de carácteres de un documento se sugiere utilizar las dos formas posibles: en la declaración XML y como una sentencia meta http-equiv.

<?xml version=”1.0″ encoding=”UTF-8″ ?>
<meta http-equiv=”Content-type” content=’text/html; charset=”UTF-8″‘ />

– Algunos atributos booleanos tienen tienen problemas con la forma ampliada que requiere XHTML en clientes que soportan especificaciones anteriores a HTML 4.0.

compact, nowrap, ismap, declare, noshade, checked, disabled, readonly, multiple, selected, noresize, defer.

– Para efectos de manipulación DOM, HTML retorna los nombres de los elementos y atributos en mayúsculas, XML tal y como fueron escritos y en XHTML se escriben en minúsculas.