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='dede_addonimages' if='aid=94'} [field:typeid runphp='yes'] echo @me*2; [/field:typeid] {/dede:loop} </body>
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; }
Ensuite, le modèle est réécrit comme :
Le code est le suivant :
<body class="index"> {dede:loop table='dede_addonimages' if='aid=94'} [field:typeid function="abc(@me)" /] {/dede:loop} </body>
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='dede_addonimages' if='aid=94'} [field:typeid runphp='yes'] echo $a=@me*2; [/field:typeid] {/dede:loop} {dede:php}var_dump($a);{/dede:php} </body>
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='dede_addonimages' if='aid=94'} [field:typeid runphp='yes'] $GLOBALS['a']=@me*2; [/field:typeid] {/dede:loop} {dede:php}echo $GLOBALS['a'];{/dede:php} </body>
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!