2013-03-05 9 views
8

In einer Situation, in der kleine HTML-Schnipsel wie Wordpress häufig im HTML verwendet werden, können Sie PHP in PHP-Echos verwenden?Kannst du PHP in PHP mit echo einfügen?

Beispiel:

<?php 
    echo "<?php the_author_meta('description'); ?>"; 
?> 

als unnötig, da das auch sein mag, kann es sogar geschehen? Wenn nicht, ist ein Aspekt von PHP, der mich immer noch leicht verwirrt, wie man PHP bei der Ausgabe von HTML beendet und neu startet.

Case in Punkt, Chris 'Antwort hier: How can I echo HTML in PHP? - Ich möchte so eine ?> am Ende seines Beispiels setzen, aber das verursacht Fehler. Kann mir jemand in die Richtung einiger umfassender Informationen zeigen, wie dieses Starten/Stoppen mit PHP beim Mischen mit HTML funktioniert, HTML, das selbst PHP-Snippets darin verwenden kann.

+14

Es kann mit 'eval' erfolgen. Aber bitte nicht. –

+1

Einfache Antwort, ** Nein! ** –

+3

Warum nicht echo verwenden get_the_author_meta ('description') '? – BenM

Antwort

7

Sie nicht PHP echo mehr PHP-Code ausgewertet werden müssen, weil PHP Code in einem einzigen Durchgang interpretiert. Wenn Sie sagen, <?php echo '<?php echo "hello"; ?>'; ?>, erhalten Sie buchstäblich den Text <?php echo "hello"; ?> als Ausgabe, und der Interpreter wird es nicht berühren.

Sie können jedoch springen in und aus PHP nach Belieben:

<?php 
echo "I am going to be interpreted by PHP."; 
?> 
I am not interpreted by PHP. 
<?php 
echo "But I am again."; 
?> 

Wenn Sie denken, dass Sie die Ausgabe PHP-Code benötigen, der sich neu bewertet ist, gibt es immer einen besseren Weg zu erreichen Dies. Wenn Sie ein konkretes Beispiel dafür geben, was Sie erreichen wollen (Fall aus der Praxis), dann würden die Leute hier in SO Ihnen gerne helfen.

+0

Letztendlich wollte ich nie auf das zurückgreifen, wonach ich gefragt habe. Es war nur eine morbide Neugier. Am Ende ging ich mit dem einfachen Ansatz, den Chris in seiner Wahlantwort hier beschreibt: http: // stackoverflow.com/Fragen/1100354/wie-can-i-Echo-html-in-php Dieser Ansatz ist jedoch stark vereinfacht, entkam auf mich wegen der ganzen Tag, was kein Ende. Ich musste nur mehr darüber nachlesen, warum das bei PHP so ist. Ich ging voran und schrieb es aus, testete es und ich schaffte eine Lösung, die ohne PHP-Einführung fehlerfrei ist. Dein "Ein- und Ausstieg aus PHP nach Belieben" Kommentar hat geholfen. Diese – user1729506

1

Ja, aber es ist eine schreckliche Idee. In diesem Fall sollten Sie nur die Funktion schreiben. Wenn Sie die mehrere Vorkommen zusammen „link“ wollen, erstellen Sie Ihre eigene Funktion, tut dies (wie function describe() {the_author_meta('description');})

In der Regel müssen Sie erkennen, dass irgendetwas zwischen <?php und dem nächsten ?> wird ein PHP-Block betrachtet werden und vom Motor geparst. Alles, was in diesen Blöcken ist, bleibt so wie es ist. Wenn Sie spezielle Probleme haben, fragen Sie bitte speziell nach;)

2

In Bezug auf: "Ein Aspekt von PHP, der mich immer noch etwas verwirrt, ist, wie man PHP beendet und neu startet, wenn man HTML ausgibt."

<?php 
// Do some wicked cool stuff in PHP here. 
?> 
<html> 
<body> 
Output some html here 
<?php 
//More awesome PHP stuff here. 
?> 
Back to html 
</body> 
</html> 
<?php 
// You can do any final stuff you want to do here. 
?> 

Vielleicht meinen Sie etwas mehr wie folgt aus:

<table> 
<?php 
foreach($person as $p){ 
    echo "<tr>"; 
    echo "<td>".$p['name']."</td>"; 
    echo "</tr>"; 
} 
?> 
</table> 
3

Versuchen:

<?php 
    echo htmlspecialchars("<?php the_author_meta('description'); ?>"); 
?> 
+1

+1 ist die am besten geeignete Antwort, wenn Sie bereits über den PHP-Code in einer Variablen geben, und Sie wollen „Echo“ den Inhalt in eine Webseite. – ssh