帝国 CMS 8.0 调用会员头像完整教程

帝国 CMS 8.0 新增了官方会员头像调用函数 eMember_UpicReturnUrl(),可以方便地获取会员头像地址。不过官方文档对第二个参数的说明比较简单,很多站长在实际使用时容易遇到头像无法显示、始终返回默认头像等问题。本文结合帝国 CMS 8.0 源码,对该函数的使用方法进行详细说明。

零、内容页调用代码

<?php $userr=sys_ShowMemberInfo($navinfor['userid'],''); ?>

<img src="<?=eMember_UpicReturnUrl($userr['userid'],$userr['upic'],0)?>" alt="用户头像">

一、函数说明

官方函数:

eMember_UpicReturnUrl($userid,$upic=1,$ckf=0);

参数说明:

  • $userid:会员 ID。
  • $upic:头像图片类型(不是是否有头像)。
  • $ckf:是否检测头像文件是否存在,0 为不检测,1 为检测,推荐用0。

二、第二个参数并不是是否有头像

很多人都会按照官方文档这样调用:

echo eMember_UpicReturnUrl(1,1,1);

如果会员头像实际上是 PNG 格式,那么返回的地址将会变成:

https://www.xxx.com/d/file/efupic/000/00/00/1.jpg

由于真实文件并不是 JPG,因此开启文件检测(第三个参数为 1)后,就会直接返回默认头像:

/e/data/images/nouserpic.gif

因此,第二个参数并不是"是否设置头像",而是头像文件扩展名类型。

三、源码对应关系

帝国 CMS 8.0 源码中:

1 = .jpg
2 = .gif
3 = .png
4 = .bmp
5 = .jpeg
6 = .webp

也就是说:

upic 值 对应扩展名
1 .jpg
2 .gif
3 .png
4 .bmp
5 .jpeg
6 .webp

四、正确调用方式

如果会员头像是 PNG,则应该这样调用:

echo eMember_UpicReturnUrl(1,3,1);

输出结果:

https://www.xxx.com/d/file/efupic/000/00/00/1.png

五、推荐写法

不要把第二个参数写死,而是直接读取会员表中的 upic 字段。

$r=$empire->fetch1("select userid,upic from {$dbtbpre}enewsmember where userid=1");

echo eMember_UpicReturnUrl($r['userid'],$r['upic'],1);

这样无论用户上传的是 JPG、PNG、GIF、WEBP 等格式,都能够自动返回正确的头像地址。

六、第三个参数说明

第三个参数用于检测头像文件是否真实存在。

参数 说明
0 不检测文件是否存在,速度更快。
1 检测文件是否存在,如果不存在则返回默认头像。

例如:

echo eMember_UpicReturnUrl($userid,$upic,0);

不会检测文件。

echo eMember_UpicReturnUrl($userid,$upic,1);

会检测头像文件,如果文件不存在,则返回:

/e/data/images/nouserpic.gif

七、常见错误

错误写法:

echo eMember_UpicReturnUrl($userid,1,1);

这种写法只适用于 JPG 头像。

如果用户上传的是 PNG、GIF、WEBP 等格式,将无法正确返回头像地址。

八、总结

帝国 CMS 8.0 的 eMember_UpicReturnUrl() 第二个参数实际上表示头像文件类型,并不是简单的"是否设置头像"。实际开发中,建议始终读取会员表中的 upic 字段作为第二个参数,再配合第三个参数进行文件检测,这样才能兼容所有头像格式,也是官方推荐的使用方式。

上一篇火车头正则过滤emoji表情 下一篇帝国 CMS 8.0 JS 登录模板调用会员头像教程
请我喝杯咖啡
如果喜欢本站的内容,欢迎请我喝杯咖啡
支付宝
微信支付
感谢你的支持
支付宝二维码
打开支付宝扫描二维码(崔*杰)
感谢你的支持
微信支付二维码
打开微信扫描二维码(崔*杰)