muban大师 发表于 2021-6-18 11:44:07

织梦dede标签array runphp静态生成乱码BUG解决方法

在织梦的大括号标签判断中,name=array runphp 生成静态时,会出现只获取一个字节的BUG,如


       
               
                       
                               
{dede:field name=array runphp=yes}@me = (@me['seotitle', != '' ? "{@me['seotitle',}":"{@me['title',}");{/dede:field}
                       
               
       

生成静态,栏目列表页第二页时出现中文乱码,因为它只输出一个字节



https://www.adminbuy.cn/uploads/allimg/210618/1-21061Q145314D.png



        这是官方程序的一个BUG
       
        解决方法
        打开 /include/dedetag.class.php 找到 大概在 680 行
       
       
               
                       
                               
                                       
$phpcode = preg_replace("/'@me'|\"@me\"|@me/i", '$DedeMeValue', $phpcode);
                               
                       
               
       

        改成
       
       
               
                       
                               
                                       
if(is_array($this->CTags[$i,->TagValue))
{
        $phpcode = preg_replace("/'@me'|\"@me\"|@me/i", '$DedeMeValue', $phpcode);
}
页: [1]
查看完整版本: 织梦dede标签array runphp静态生成乱码BUG解决方法