ホームページ CMS チュートリアル DEDECMS DEDEテンプレートでPHPスクリプトを実行する方法

DEDEテンプレートでPHPスクリプトを実行する方法

Dec 26, 2019 am 09:25 AM
dede

DEDEテンプレートでPHPスクリプトを実行する方法

DEDE テンプレートで PHP スクリプトを実行するにはどうすればよいですか?

Dede データベースの基礎となるフィールドを直接処理する必要があることがよくあります。dede に対応する関数がない場合は、他のメソッドを使用してそれを実現する必要があります。タイトルにあるように、実行します。 php スクリプトと php 変数については、以下に良い例があります。興味のある友人は、

推奨学習を参照してください: 梦Weavercms

dede テンプレートを使用する場合、多くの場合、 dede データベースの基礎となるフィールドを直接処理するためには、対応する関数が dede にない場合、多くの場合、それに対処する方法を見つける必要があります。

例: データテーブル addonimages のレコードの typeid フィールドを取り出し、typeid を 2 倍した結果をブラウザに出力したいとします。 (注: ここでの typeid 値は 6 です)

最初にこれを書きました:

コードは次のとおりです:

<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>
ログイン後にコピー

ブラウザの出力は次のとおりです: 12 6

ここに余分な 6 があります。その理由は、[field:typeid] が最初に内部 php ステートメントを実行するためだと思います。行 [/field:typeid] に到達すると、内部関数を呼び出して戻ります。直接 [ field:typeid] 基になるテンプレートの内容、12 を直接出力したい場合は、/include/extend.fuc.php ファイルにカスタム関数を追加するだけです。

コードは次のとおりです:

function abc($val){ 
return $val*2; 
}
ログイン後にコピー

次に、テンプレートは次のように書き換えられます:

コードは次のとおりです:

<body class="index"> 
{dede:loop table=&#39;dede_addonimages&#39; if=&#39;aid=94&#39;} 
[field:typeid function="abc(@me)" /] 
{/dede:loop} 
</body>
ログイン後にコピー

出力結果は次のとおりです。 12

さらに、同じテンプレート内の 2 つの PHP コード部分の変数は共通ではないことに注意してください。つまり、1 つの PHP コード部分の特定の変数のスコープは短いものに限定されます。コード。

例:

コードは次のとおりです:

<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>
ログイン後にコピー

出力結果は次のとおりです: 12 6 NULL

上記の php スクリプトを使用する場合後続の PHP スクリプト変数では、グローバル変数を使用してこの問題を解決するという一時的な解決策を思いつきました。

コードは次のとおりです:

<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>
ログイン後にコピー

出力結果は: 6 12 ([field:typeid] にエコーがないため、6 が直接出力されます)

以上がDEDEテンプレートでPHPスクリプトを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)