showmessage在discuz里作为提示信息应用及其广泛。不过最近我发现一个问题,比如我想显示信息如下:
showmessage('请访问<a href = "http://www.baidu.com">www.baidu.com</a>');
提示信息里显示一个超链接嘛,但是显示的竟然是这样的:
分析了,showmessage函数的源码,发现有这样的代码:
$vars = explode(':', $message);
if(count($vars) == 2) {
$show_message = lang('plugin/'.$vars[0], $vars[1], $values);
} else {
$show_message = lang('message', $message, $values);
}
从以上代码可以看出来,dz用冒号对显示的字符串进行了分隔,如果返回的结果数据有2个元素(其实就是传入的参数里有1个冒号),那么就从插件语言包里获取数据,否则就用默认传入的,所以如果我们想要内容显示正确,传入的字符串不能有1个冒号,要么0个,要么超过1个,于是,代码改成这样:
showmessage('请访问<a href = "http://www.baidu.com">http://www.baidu.com</a>');
然后显示就正常了。
有关PHP系统、Discuz或网站等各种问题,可以联系QQ1069971363寻求付费支持
|