Heim  >  Artikel  >  CMS-Tutorial  >  So führen Sie ein PHP-Skript in einer DEDE-Vorlage aus

So führen Sie ein PHP-Skript in einer DEDE-Vorlage aus

藏色散人
藏色散人Original
2019-12-26 09:25:543326Durchsuche

So führen Sie ein PHP-Skript in einer DEDE-Vorlage aus

Wie führe ich ein PHP-Skript in einer DEDE-Vorlage aus?

Es ist oft notwendig, die zugrunde liegenden Felder der dede-Datenbank direkt zu verarbeiten. Wenn es in dede keine entsprechende Funktion gibt, müssen wir, wie der Titel sagt, andere Methoden verwenden Für das PHP-Skript und die PHP-Variablen finden Sie unten ein gutes Beispiel. Interessierte Freunde können sich auf

Empfohlenes Lernen beziehen: Dreamweaver cms

Bei der Verwendung von Dede-Vorlagen wird dies häufig der Fall sein Es kann erforderlich sein, die zugrunde liegenden Felder der dede-Datenbank direkt zu verarbeiten. Wenn es in dede keine entsprechende Funktion gibt, müssen wir häufig einen Weg finden, damit umzugehen.

Beispiel: Ich möchte das Typ-ID-Feld eines bestimmten Datensatzes in der Datentabelle addonimages herausnehmen und dann das Ergebnis von Typ-ID multipliziert mit 2 im Browser ausgeben. (Hinweis: Der Typ-ID-Wert ist hier 6)

Zuerst habe ich Folgendes geschrieben:

Der Code lautet wie folgt:

<body class="index"> 
{dede:loop table=&#39;dede_addonimages&#39; if=&#39;aid=94&#39;} 
[field:typeid runphp=&#39;yes&#39;] 
echo @me*2; 
[/field:typeid] 
{/dede:loop} 
</body>

Die Browserausgabe lautet: 12 6

Hier gibt es eine zusätzliche 6. Ich denke, der Grund dafür ist, dass [field:typeid] zuerst die interne PHP-Anweisung ausführt, wenn die Zeile [/field:typeid] erreicht wird direkt [ field:typeid] Der Inhalt der zugrunde liegenden Vorlage. Wenn Sie 12 direkt ausgeben möchten, können Sie nur eine benutzerdefinierte Funktion in der Datei /include/extend.fuc.php hinzufügen.

Der Code lautet wie folgt:

function abc($val){ 
return $val*2; 
}

Dann wird die Vorlage wie folgt umgeschrieben:

Der Code lautet wie folgt:

<body class="index"> 
{dede:loop table=&#39;dede_addonimages&#39; if=&#39;aid=94&#39;} 
[field:typeid function="abc(@me)" /] 
{/dede:loop} 
</body>

Das Ausgabeergebnis lautet: 12

Beachten Sie außerdem, dass die Variablen in zwei PHP-Codeteilen in derselben Vorlage nicht gemeinsam sind, d Code.

Beispiel:

Der Code lautet wie folgt:

<body class="index"> 
{dede:loop table=&#39;dede_addonimages&#39; if=&#39;aid=94&#39;} 
[field:typeid runphp=&#39;yes&#39;] 
echo $a=@me*2; 
[/field:typeid] 
{/dede:loop} 
{dede:php}var_dump($a);{/dede:php} 
</body>

Das Ausgabeergebnis ist: 12 6 NULL

Wenn Sie das obige PHP-Skript verwenden möchten In den folgenden PHP-Skriptvariablen habe ich eine vorübergehende Lösung gefunden, die darin besteht, globale Variablen zu verwenden, um dieses Problem zu lösen.

Der Code lautet wie folgt:

<body class="index"> 
{dede:loop table=&#39;dede_addonimages&#39; if=&#39;aid=94&#39;} 
[field:typeid runphp=&#39;yes&#39;] 
$GLOBALS[&#39;a&#39;]=@me*2; 
[/field:typeid] 
{/dede:loop} 
{dede:php}echo $GLOBALS[&#39;a&#39;];{/dede:php} 
</body>

Das Ausgabeergebnis ist: 6 12 (da es kein Echo in [field:typeid] gibt, wird 6 also direkt ausgegeben)

Das obige ist der detaillierte Inhalt vonSo führen Sie ein PHP-Skript in einer DEDE-Vorlage aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn