二次开发 版主:官方研发技术组
使用自定义函数筛选关键词,返回关键词汉字变为“�”
类型:迅睿CMS 更新时间:2022-10-06 08:48:28 自定义函数

使用自定义函数筛选关键词,返回关键词汉字变为“”,在TDK里引用时可以正常显示汉字,但在网页模板中引用时就乱码“”,自己搜了半天,没有解决,只好来求助了。

代码如下:

/*关键词筛选*/
function keywords($data){
    $arr=explode(",", $newkws);/*将关键词转化为数组*/
    $xlen = sizeof($arr);/*关键词个数*/
    $fm = '******';
    for ($i=0; $i < $xlen; $i++) {/*循环关键词,进行筛选*/
        $res =strpos($famen,$arr[$i]); /*文章关键词中是否存在主关键词*/
        if($res!==false){/*存在*/
            return $arr[$i];
        }
    }
}

都设置UTF-8,返回的$arr[$i]也用mb_detect_encoding测过,是UTF-8。

custom.php也加上了“header("Content-type:text/html;charset=UTF-8");”。

数据库keywords字段的“排序规则”是“utf8mb4_unicode_ci”(不清楚有没有影响)。

回帖
  • #1楼    迅睿框架创始人
    2022-09-29 16:12:58
    Google Pixel 手机 0

    custom.php 不需要“header("Content-type:text/html;charset=UTF-8");”,因为index.php有一家加了

    你可以在php里面运行你写的这个函数,然后exit;看他在php里面输出的是不是正常的,如果不是那就是截取的编码有问题,也就是你程序截取了文字的一半块

  • 刘波
    #2楼    刘波
    2022-09-30 00:49:02
    Chrome 0
    可能是截取了汉字的一半
  • 小小seoer
    #3楼    小小seoer
    2022-09-30 15:13:47
    Chrome 0
    回复迅睿框架创始人 刘波 我找到了问题出在哪了,是函数引用的位置,在后台“seo设置”里
    $arr=explode(",", $data['keywords']);
    而在模板文件中
    $arr=explode(",", $data);
    满意答案
  • 小小seoer
    #4楼    小小seoer
    2022-10-06 08:48:28
    Chrome 0
    @小小seoer:后台和前台的数据类型不同吧