雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

dedecms

當前位置:主頁 > CMS教程 > dedecms >

dedecms源碼中怎么運行php腳本和變量在需要操作數(shù)

來源:本站原創(chuàng)|時間:2021-08-05|欄目:dedecms|點擊:

在使用織夢CMS網(wǎng)站源碼的時候,經(jīng)常會需要直接對織夢CMS數(shù)據(jù)庫的底層字段進行處理,如果織夢CMS中沒有相應(yīng)的函數(shù)的時候,往往就需要我們想方案來處理了。 
 
舉例:我想取出數(shù)據(jù)表addonimages中的某一條記錄的typeid這個字段,然后在瀏覽器中輸出typeid乘以2的結(jié)果。(注:這里的typeid值為6) 
 
起初我是這么寫的: 
 
代碼如下:
 
<body class="index"> 
 
{dede:loop table='dede_addonimages' if='aid=94'} 
 
[field:typeid runphp='yes'] 
 
echo @me*2; 
 
[/field:typeid] 
 
{/dede:loop} 
 
</body> 
 
瀏覽器輸出結(jié)果是:12 6 
 
這 里多出一個6,我認為是原因是[field:typeid]會先執(zhí)行內(nèi)部的php語句,當運行到[/field:typeid]這一行時,它會調(diào)用內(nèi)部的 函數(shù),直接返回[field:typeid]底層源碼的內(nèi)容,如果想要直接輸出12的話,只能在/include/extend.fuc.php 這個文件中添加自定義的函數(shù)。 
 
代碼如下:
 
function abc($val){ 
 
return $val*2; 
 
 
然后源碼改寫為: 
 
代碼如下:
 
<body class="index"> 
 
{dede:loop table='dede_addonimages' if='aid=94'} 
 
[field:typeid function="abc(@me)" /] 
 
{/dede:loop} 
 
</body> 
 
輸出結(jié)果為:12 
 
另外要注意的是,同一源碼中的兩段php代碼里面的變量不通用,也就是說一段php代碼中的某一變量,它的作用域只限于該短代碼。 
 
例: 
 
代碼如下:
 
<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> 
 
輸出結(jié)果為:12 6 NULL 
 
如果想在后面的php腳本中使用上面php腳本中的變量,我想出一個臨時性的解決辦法,即用全局變量來解決這個問題。 
 
代碼如下:
 
<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> 
 
輸出結(jié)果為:6 12 (因為[field:typeid]中沒有echo,所以直接輸出6)
 

上一篇:織夢arclist標簽idlist按指定id順序輸出

欄    目:dedecms

下一篇:dedecms v5.7 CSRF保護措施繞過漏洞

本文標題:dedecms源碼中怎么運行php腳本和變量在需要操作數(shù)

本文地址:http://www.jygsgssxh.com/a1/dedecms/16204.html

更多dedecms

您可能感興趣的文章

閱讀排行

本欄相關(guān)

隨機閱讀

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有