织梦模板调用数据库数据转ASCII码
in 技术杂谈 with 0 comment

织梦模板调用数据库数据转ASCII码

in 技术杂谈 with 0 comment

本身织梦模板里面是不支持原生php代码,需要自己修改配置,具体操作看上面几篇文章或者自行百度

这边博主是调用的{dede:global.cfg_description/}内容实现转码,数据库表dede_sysconfig

在模板头部贴上代码:

global $c;
$asc = $dsql->GetOne("select value from dede_sysconfig where aid=711");
$c = $asc[value];
function asc_encode($c){
    $len = strlen($c);
    $a = 0;
    $scill="";
    while ($a < $len){
        $ud = 0;
        if (ord($c{$a}) >=0 && ord($c{$a})<=127){
            $ud = ord($c{$a});
            $a += 1;
        }
        else if (ord($c{$a}) >=192 && ord($c{$a})<=223){
            $ud = (ord($c{$a})-192)*64 + (ord($c{$a+1})-128);
            $a += 2;
        }
        else if (ord($c{$a}) >=224 && ord($c{$a})<=239){
            $ud = (ord($c{$a})-224)*4096 + (ord($c{$a+1})-128)*64 + (ord($c{$a+2})-128);
            $a += 3;
        }
        else if (ord($c{$a}) >=240 && ord($c{$a})<=247){
            $ud = (ord($c{$a})-240)*262144 + (ord($c{$a+1})-128)*4096 + (ord($c{$a+2})-128)*64 + (ord($c{$a+3})-128);
            $a += 4;
        }
        else if (ord($c{$a}) >=248 && ord($c{$a})<=251){
            $ud = (ord($c{$a})-248)*16777216 + (ord($c{$a+1})-128)*262144 + (ord($c{$a+2})-128)*4096 + (ord($c{$a+3})-128)*64 + (ord($c{$a+4})-128);
            $a += 5;
        }
        else if (ord($c{$a}) >=252 && ord($c{$a})<=253){
            $ud = (ord($c{$a})-252)*1073741824 + (ord($c{$a+1})-128)*16777216 + (ord($c{$a+2})-128)*262144 + (ord($c{$a+3})-128)*4096 + (ord($c{$a+4})-128)*64 + (ord($c{$a+5})-128);
            $a += 6;
        }
        else if (ord($c{$a}) >=254 && ord($c{$a})<=255){
            $ud = 0;
            $a++;
        }else{
            $ud = 0;
            $a++;
        }
        $scill .= "&#$ud;";
    }
    return $scill;
}

在需要出现该函数的地方贴上:

{dede:php}echo asc_encode($c);{/dede:php}
Comments are closed.