2010-10-14 4 views
11

mi ha attraversato questo prima di pubblicare:Come eco in PHP, tag html

How can I echo HTML in PHP?

E ancora non poteva farlo funzionare.

sto cercando di eco a questo:

<div> 
<h3><a href="#">First</a></h3> 
<div>Lorem ipsum dolor sit amet.</div> 
</div> 
<div> 

Ma ancora non riesce a trovare un modo per rendere i tag "" e '' scompare, cosa devo fare?

+0

Grazie mille a tutti voi! Vedrò quale risposta si adatta meglio e viene votata al meglio (accettarne una). Ma ancora grazie per tutto il tuo aiuto! – Trufa

risposta

17
<?php 

echo '<div> 
<h3><a href="#">First</a></h3> 
<div>Lorem ipsum dolor sit amet.</div> 
</div> 
<div>'; 

?> 

Basta inserirlo tra virgolette singole.

+0

Proprio così ?? lascialo fuori! – Trufa

+0

OMG così semplice !! Grazie mille, ha funzionato come un incantesimo! – Trufa

+1

ricorda di sfuggire a qualsiasi 'potresti avere nel tuo html con barra rovesciata come questa \' –

7

Utilizzando il primo meccanismo fornito, lo farà.

<?php 
    ... 
?> 
<div> 
<h3><a href="#">First</a></h3> 
<div>Lorem ipsum dolor sit amet.</div> 
</div> 
<div> 
<?php 
    ... 
?> 
8

Hai provato la heredoc soluzione basata:

echo <<<HTML 
<div> 
<h3><a href="#">First</a></h3> 
<div>Lorem ipsum dolor sit amet.</div> 
</div> 
<div> 
HTML; 
4

, è necessario sfuggire alla " in modo che PHP non li riconosce come parte del vostro codice PHP. A tale scopo, utilizzare il carattere di escape \.

Quindi, il codice sarebbe simile a questa:

echo 
    "<div> 
     <h3><a href=\"#\">First</a></h3> 
     <div>Lorem ipsum dolor sit amet.</div> 
    </div> 
    <div>" 
2

Si dispone di una varietà di opzioni. Uno potrebbe essere quello di utilizzare PHP come motore di template è:

<?php 
    // Draw the page 
?> 
<div> 
    <h3><a href="#">First</a></h3> 
    <div>Lorem ipsum dolor sit amet.</div> 
</div> 
<?php 
    // Done drawing. 
?> 

Un'altra potrebbe essere quella di utilizzare le virgolette singole, che consentono di lasciare i doppi apici non quotate e anche il supporto a capo in letterali:

<?php 
    echo '<div> 
    <h3><a href="#">First</a></h3> 
    <div>Lorem ipsum dolor sit amet.</div> 
</div>'; 
?> 

altro sarebbe quella di utilizzare un heredoc, che lascia intatta virgolette, supporta a capo, e si espande anche le variabili all'interno:

<?php 
    echo <<<EOS 
<div> 
    <h3><a href="#">First</a></h3> 
    <div>Lorem ipsum dolor sit amet.</div> 
</div> 
EOS; 
?> 
4

Se si vuole l'uscita di grandi quantità di HTML si dovrebbe considerare l'utilizzo della sintassi heredoc o nowdoc. Questo ti permetterà di scrivere le tue corde senza bisogno di scappare.

echo <<<EOD 
You can put "s and 's here if you like. 
EOD; 

Si noti inoltre che, poiché PHP è un linguaggio incorporato è possibile aggiungerlo tra te contenuto HTML e non è necessario fare eco eventuali tag.

<div> 
    <p>No PHP here!</p> 
    <?php 
    $name = "Marcel"; 
    echo "<p>Hello $name!</p>"; 
    ?> 
</div> 

Anche se si desidera solo per emettere una variabile è necessario utilizzare i tag di uscita a breve mano <?=$var?>. Questo è equivalente a <?php echo $var; ?>.

3

Separare l'HTML da PHP è il metodo migliore. È meno complicato e facile da eseguire il debug.

<?php 
    while($var) 
    { 
?> 

    <div> 
     <h3><a href="User<?php echo $i;?>"><?php echo $i;?></a></h3> 
     <div>Lorem ipsum dolor sit amet.</div> 
    </div> 

<?php 
    $i++; 
    } 
?> 
1

non è necessario utilizzare eco, basta usare il tag.benvenuto :)

<plaintext> 
    <div> 
     <h3><a href="#">First</a></h3> 
     <div>Lorem ipsum dolor sit amet.</div> 
    </div> 
0

si può sostituire '<' con &lt; e '>' con &gt; es:

echo "&lt;div&gt;"; 

uscita sarà visibile <div>

per le stringhe più lunghe fanno una funzione, per ex

function example($input) { 
    $output = str_replace('>', '&gt;', str_replace('<', '&lt;', $html)); 
    return $output; 
} 

echo example($your_html); 

Non dimenticare t o metti le barre rovesciate href=\"#\" o fallo con virgolette singole href='#' o cambialo anche in una funzione con str_replace