Maison > Tutoriel CMS > DEDECMS > le corps du texte

Comment exécuter un script php dans le modèle DEDE

藏色散人
Libérer: 2019-12-26 09:25:54
original
3328 Les gens l'ont consulté

Comment exécuter un script php dans le modèle DEDE

Comment exécuter un script php dans le modèle DEDE ?

Il est souvent nécessaire de traiter directement les champs sous-jacents de la base de données dede. S'il n'y a pas de fonction correspondante dans dede, alors nous devons utiliser d'autres méthodes pour y parvenir. Comme le dit le titre, exécutez. le script php et les variables php, il y a un bon exemple ci-dessous, les amis intéressés peuvent se référer à

Apprentissage recommandé : Dreamweaver cms

Lors de l'utilisation de modèles dede, il sera souvent être nécessaire de traiter directement les champs sous-jacents de la base de données dede. S'il n'y a pas de fonction correspondante dans dede, nous devons souvent trouver un moyen de la gérer.

Exemple : je souhaite supprimer le champ typeid d'un certain enregistrement dans la table de données addonimages, puis afficher le résultat de typeid multiplié par 2 dans le navigateur. (Remarque : la valeur typeid ici est 6)

Au début, j'ai écrit ceci :

Le code est le suivant :

<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>
Copier après la connexion

La sortie du navigateur est : 12 6

Il y a un 6 supplémentaire ici. Je pense que la raison est que [field:typeid] exécutera d'abord l'instruction php interne. Lorsque la ligne [/field:typeid] sera atteinte, il appellera la fonction interne et retournera. directement [ field:typeid] Le contenu du modèle sous-jacent, si vous souhaitez en afficher directement 12, vous ne pouvez ajouter une fonction personnalisée que dans le fichier /include/extend.fuc.php.

Le code est le suivant :

function abc($val){ 
return $val*2; 
}
Copier après la connexion

Ensuite, le modèle est réécrit comme :

Le code est le suivant :

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

Le résultat de sortie est : 12

De plus, notez que les variables dans deux morceaux de code PHP dans le même modèle ne sont pas communes, c'est-à-dire que la portée d'une certaine variable dans un morceau de code PHP est limitée au court code.

Exemple :

Le code est le suivant :

<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>
Copier après la connexion

Le résultat de sortie est : 12 6 NULL

Si vous souhaitez utiliser le script php ci-dessus dans les variables de script php suivantes, j'ai trouvé une solution temporaire, qui consiste à utiliser des variables globales pour résoudre ce problème.

Le code est le suivant :

<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>
Copier après la connexion

Le résultat de sortie est : 6 12 (car il n'y a pas d'écho dans [field:typeid], donc 6 est sorti directement)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal