硬汉工作室

搜索
热搜: 活动 交友 discuz

[开发技术] Discuz中showmessage函数关于冒号的一个坑

[复制链接]
发表于 2020-5-11 16:52:49 | 显示全部楼层 |阅读模式
showmessage在discuz里作为提示信息应用及其广泛。不过最近我发现一个问题,比如我想显示信息如下:

showmessage('请访问<a href = "http://www.baidu.com">www.baidu.com</a>');


提示信息里显示一个超链接嘛,但是显示的竟然是这样的:
2020-05-11_163705.jpg
分析了,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>');

然后显示就正常了。
2020-05-11_163726.jpg
有关PHP系统、Discuz或网站等各种问题,可以联系QQ1069971363寻求付费支持
Discuz插件商店:http://addon.dismall.com/?@56030.developer
回复

使用道具 举报

QQ|Archiver|手机版|小黑屋|硬汉工作室 ( 冀ICP备13021567号-9 )

GMT+8, 2024-5-18 22:14 , Processed in 0.057230 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表