2011-09-05 12 views
12

Quiero incluir el código html dentro de las variables de php. Recuerdo que había una manera de definir el código HTML dentro de una variable php, algo similar a esto:Definición de código html dentro de las variables de PHP

<?php $my_var = { ?> 
<div>SOME HTML</div> 
<?php } ?> 

lo encontré en PHP.net pero no puedo encontrar ahora. Había algo más en lugar de "{" pero no recuerdo exactamente. Estoy buscando escribir directamente el código html como el anterior, por lo que NO me gusta esto: $my_var = '<div>SOME HTML</div>'; ¿Alguna idea?

Respuesta

27
<?php 
$my_var = <<<EOD 
<div>SOME HTML</div> 
EOD; 
?> 

Se llama heredoc sintaxis.

+0

Esa fue la única. Gracias. – adrianTNT

+0

Esperaba que Dreamweaver ayudara a formatear correctamente la sintaxis html, pero veo que no lo reconoce como un html: | No puedo cerrar esa etiqueta php antes de html y abrirla nuevamente después del html, ¿o sí? – adrianTNT

+0

No, por desgracia, no se puede: -/ Puede utilizar ob_start() y ob_get_clean() para comenzar a guardar el búfer de salida y, a continuación, ir a buscar el búfer en una variable. Sin embargo, eso se considera un truco (feo). –

38

Prueba esto:

<?php ob_start(); ?> 
<div>HTML goes here...</div> 
<div>More HTML...</div> 
<?php $my_var = ob_get_clean(); ?> 

De esta manera se conservará resaltado de sintaxis para HTML.

+2

Esto debería estar en la parte superior. Mucho más limpio que EOD – KroniK907

+0

¡hombre rock! –

6

Guarde el HTML en un archivo separado: example.html. A continuación, lea en el contenido del archivo en una variable

$my_var = file_get_contents('example.html'); 
+0

Sí, este método también funcionaría para el propósito inicial que tenía. – adrianTNT

+0

¡Prefiero esto para mantener limpio el código! –

1

Si no se preocupan por la sintaxis HTML destacando que sólo podría definir una variable normal. No tiene que escapar de HTML porque PHP le permite usar comillas simples para definir una variable, lo que significa que puede usar comillas dobles dentro de su código HTML.

$html = ' 
<p> 
    <b><i>Some html within a php variable</i><b> 
</p> 
<img src="path/to/some/boat.png" alt="This is an image of a boat"> 
' ; 

Funciona perfectamente para mí, pero es una cuestión de preferencia e implementación, supongo.

0

Si usted va a estar haciendo eco a continuación el contenido de otra forma esto se puede hacer es el uso de funciones,

esto también tiene el beneficio añadido de los programas que utilizan el resaltado de sintaxis.

function htmlContent(){ 
?> 
    <h1>Html Content</h1> 
<?php 
} 


htmlContent(); 
?> 
Cuestiones relacionadas