21 jun 2007

Hoy tengo flojera....VIVA EL COPY PASTE !!!

heredoc

Desde la versión 4.0, PHP ofrece la posibilidad de utilizar la construcción heredoc (o here print), que nos permite volcar en la pantalla grandes cantidades de texto, evitando la necesidad de escapar carácteres en su interior.

Su uso es bien sencillo. Al comienzo del texto que vamos a volcar necesitamos situar un identificador, que será "<<<" seguido de tres carácteres alfanuméricos, seguidos de la cadena y al terminar incluimos de nuevo los tres carácteres que sirvieron de identificador:

echo <<esta cadena se imprimirá sin problemas,
y podemos usar en ellas "comillas" sin necesidad de escape;
Tambien interpreta (expande) las $variables
Lo que es ideal para incluir grandes trozos de código html.
EOT;

?>

Cuestiones a tener en cuenta: el identificador de cierre puede ser cualquier combinación de letras; convencionalmente se suele usar EOT o EOF, vale cualquier otro (siempre que NO este incluido en el texto !!) y debe incluirse al comienzo de la linea (sin espacios en blanco ni tabuladores, ni comentarios), La linea no puede incluir detrás ningun otro carácter, salvo un punto y coma. Es mas, si escribes tu código con un editor windows, también puedes tener problemas si incluyes un retorno de carro (ENTER) ya que windows no termina las lineas con un carácter de nueva línea (\n) sino \r\n.

Por ello si ves que tu script no termina de volcar el texto justo al encontrar el identificador de cierre, lo primero que debes verificar es que la linea de cierre esta verdaderamente vacía.

Normalmente no deberías tener ningun problema de retorno de carro siempre que al subir el código al servidor emplees el modo ascii (no binario).

La principal ventaja de este sistema es que evita operaciones de entrada/salida en el modo php, con lo cual se incrementa la velocidad del script, facilitando además la introducción y legibilidad de código.