2011-09-05 11 views
12

Desidero includere il codice html all'interno delle variabili php. Mi ricordo che c'era un modo per definire il codice html all'interno di una variabile PHP, qualcosa di simile a questo:Definizione del codice html all'interno delle variabili PHP

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

ho trovato su PHP.net ma non riesco a trovare ora. C'era qualcos'altro al posto dello ma non ricordo esattamente. Sto cercando di scrivere direttamente il codice html come sopra, quindi NON così: $my_var = '<div>SOME HTML</div>'; Qualche idea?

risposta

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

Si chiama sintassi heredoc.

+0

Era quello. Grazie. – adrianTNT

+0

Speravo che Dreamweaver ti aiutasse a formattare correttamente la sintassi html ma vedo che non lo riconosce come html: | Non posso chiudere quel tag php prima di html e riaprirlo dopo l'html, posso? – adrianTNT

+0

No, sfortunatamente, non è possibile: -/ È possibile utilizzare ob_start() e ob_get_clean() per iniziare a salvare il buffer di output e quindi recuperare il buffer in una variabile. Questo è considerato un (brutto) trucco, però. –

38

Prova questo:

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

In questo modo si manterrà evidenziare la sintassi HTML.

+2

Questo dovrebbe essere nella parte superiore. Molto più pulito di EOD – KroniK907

+0

you rock man !!! –

6

Salvare il codice HTML in un file separato: example.html. Poi leggi negli contenuto del file in una variabile

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

Sì, questo metodo avrebbe funzionato anche per lo scopo iniziale che avevo. – adrianTNT

+0

Preferirò questo per mantenere il codice pulito! –

1

Se non si cura di sintassi HTML evidenziazione si può solo definire una variabile normale. Non è necessario sfuggire all'HTML perché PHP consente di utilizzare virgolette singole per definire una variabile, il che significa che è possibile utilizzare virgolette doppie all'interno del codice 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"> 
' ; 

Funziona perfettamente per me, ma è una questione di preferenza e implementazione, immagino.

0

Se avete intenzione di essere eco il contenuto poi un altro modo in cui questo può essere fatto è quello di utilizzare le funzioni,

questo ha anche il vantaggio di programmi che utilizzano l'evidenziazione della sintassi.

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


htmlContent(); 
?> 
Problemi correlati