在使用UTF-8编码时,许多用户发现中文tags无法正常搜索到。这是因为字符编码的问题导致的。为了解决这个问题,我们需要对字符进行适当的转换。本文将详细介绍如何修改userfun.php文件以支持UTF-8下的中文tags搜索。

首先,我们来看一下原始的userfun.php文件中显示本文tags的语句:


$tagslink=$public_r[newsurl]."e/search/?searchget=1&tbname=$tbname&tempid=$tempid&show=keyboard&keyboard=".$r[$i];   //链接
    

在这个语句中,红色部分是原有的网址后缀。通过分析前台tags代码,我们可以看到:

http://www.xxx.com/e/search/?searchget=1&tbname=news&tempid=1&show=keyboard&keyboard=帝国

这里的“帝国”只是一个例子。从前台tags "帝国" = 后台"$r[$i]"可以看出,我们需要对这个变量进行编码转换。

为了实现这一点,我们可以使用PHP中的urlencode函数。该函数可以将字符串中的特殊字符转换为适用于URL的形式。例如,将“帝国”转换为“%E5%B8%9D%E5%9B%BD”。以下是修改后的代码:


$tagslink=$public_r[newsurl]."e/search/?searchget=1&tbname=$tbname&tempid=$tempid&show=keyboard&keyboard=".urlencode($r[$i]);   //链接
    

这样,输出结果$r[$i]就会被自动转码。最终,中文tags对应的搜索链接地址会变成:

http://www.xxx.com/e/search/?searchget=1&tbname=news&tempid=1&show=keyboard&keyboard=%E5%B8%9D%E5%9B%BD

至此,试验成功!本文主要针对初学者及代码零基础的朋友,希望对大家有所帮助。

最后,建议帝国CMS在开发相关插件及应用时,能够全面考虑两种编码方式,从而提高用户体验。