在DeDeBIZ、DeDeCMS、织梦BIZ、织梦CMS中,能实现API接口调用会员头像。

在织梦首页、列表页、内容页、标签页、搜索页、乃至整个织梦模板中,都能使用标签调用会员头像。为此,我想到了,使用API接口的方式,像QQ号能调用QQ头像那样的接口。

好了,你想实现吗,直接看展示效果吧。

调用标签

/user/image.php?ui=admin
/user/image.php?ui=admin&nk=100
/user/image.php?ui=admin&ng=200
/user/image.php?ui=admin&nk=300&ng=300

注意:支持4种调用方式,你喜欢哪种,那就用哪种。

标签说明

?ui=admin 默认图片大小
?ui=admin&nk=100 等比例,图片宽100px、图片高100px
?ui=admin&ng=200 等比例,图片宽200px、图片高200px
?ui=admin&nk=300&ng=300 指定宽高,图片宽300px、图片高300px

注意:参数值,不是固定的。比如,你可以任意指定图片宽高。

参数说明

ui 登录名,必须写,不然找不到用户
nk 图片宽,非必须,只设置宽,不设置高,就是图片等比例输出。
ng 图片高,非必须,设置宽,设置高,那就是固定图片大小输出。

注意:不设置图片宽,不设置图片高,就是默认的图片大小输出。

教程开始

在 DeDeBIZ 中使用:在 user 目录下,新建一个 image.php 文件,代码如下

<?php
/**
 * @version        $id:image.php 8:38 2024年8月6日 NiDeCMS $
 * @package        NiDeCMS.User
 * @copyright      Copyright (c) 2024 DedeBIZ.COM
 * @license        GNU GPL v2 http://nidecms.com/home
 * @link           http://nidecms.com/
 */
error_reporting(0);
$userid = isset($_REQUEST['ui']) ? $_REQUEST['ui'] : '';//登录名
$widtnk = isset($_REQUEST['nk']) ? $_REQUEST['nk'] : '';//图片宽
$heigng = isset($_REQUEST['ng']) ? $_REQUEST['ng'] : '';//图片高
if (empty($userid)){
	exit('参数不存在!');
}
require_once(dirname(__FILE__).'/../system/common.inc.php');
//织梦二次开发获取会员头像
$row = $dsql->GetOne("SELECT face,sex,userid FROM `#@__member` WHERE userid = '{$userid}'");
if ($row['userid'] == ''){
	exit('用户不存在!');
}
if ($row['face'] == ''){
	if ($row['sex']=="男"){
		$facea = '/ueditor/asking/img/dfboy.png';
	} elseif ($row['sex']=="女"){
		$facea = '/ueditor/asking/img/dfgirl.png';
	} else {
		$facea = '/ueditor/asking/img/face.png';
	}
} else {
	$facea = str_replace($GLOBALS['cfg_basehost'],'/', $row['face']);
}

$imagePath = dirname(__FILE__).'/..'.str_replace('//','/', $facea);

// 检查文件是否存在
if (!file_exists($imagePath)) {
    exit('图片文件不存在');
}

if ($widtnk == '' && $heigng == ''){
	header('Content-Type: image/jpeg');
	$fp = fopen($imagePath,'rb');
	fpassthru($fp);
	exit();
}

// 尝试根据文件扩展名创建图像资源
$imageInfo = getimagesize($imagePath);
$imageType = $imageInfo[2]; // 2 是索引,用于获取图片类型

switch ($imageType) {
    case IMAGETYPE_GIF:
        $image = imagecreatefromgif($imagePath);
        break;
    case IMAGETYPE_JPEG:
        $image = imagecreatefromjpeg($imagePath);
        break;
    case IMAGETYPE_PNG:
        $image = imagecreatefrompng($imagePath);
        break;
    default:
        break;
}

// 设置新的宽度和高度
if($widtnk == ''){
	$newWidth = $heigng;
	$newHeight = $heigng;
} elseif ($heigng == ''){
	$newWidth = $widtnk;
	$newHeight = $widtnk;
} else {
	$newWidth = $widtnk;
	$newHeight = $heigng;
}

// 创建新的图像资源
$newImage = imagecreatetruecolor($newWidth, $newHeight);

// 复制并调整大小
imagecopyresampled($newImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, imagesx($image), imagesy($image));

header('Content-Type: image/jpeg');

// 输出图像到浏览器
imagejpeg($newImage);

// 释放内存
imagedestroy($image);
imagedestroy($newImage);
?>

这个代码,是在 DeDeBIZ 中测试的。所以,在 DeDeBIZ 中直接使用,但是,在 DeDeCMS 中,只需要改两个地方而已。下面,是在 DeDeCMS 中使用的修改方法。

1、将上面的文件剪切到 member 目录。

2、改一句代码就行了,看到第 16 行

require_once(dirname(__FILE__).'/../system/common.inc.php');

改为

require_once(dirname(__FILE__).'/../include/common.inc.php');

这样就行了。

无需登录,使用接口的方式,优雅的接口,适合高配置、高需求、高追求的站长。

温馨提示

内容由用户共同创建和维护,并不代表织梦爱好者论坛立场!
建议您独自对内容进行评估,核实并咨询相关的专业人士!

点击登录

您尚未登录,请登录后查看。
如已经登录,请刷新当前页面。
与博客互通,请在《全民博客》登录
如已在博客登录,请刷新当前页面。

1 个回复 | 最后更新于 2024-08-06
snh102
2024-08-06  沙发

友情提示:看到第24行、26行、28行代码,当会员未上传头像时,是根据性别男、女、保密等判断,所以,你要准备这三张图片,路径改为自己的就行了。

登录后方可回帖

snh102

织梦修改全站.html文档的默认命名规则

用织梦做的网站,基本都是 .html 文件后缀的,有的站长就在想,怎么样改为其它后缀的形式,下面,小编附上修改方法。 打开 /include/common.inc.php 搜索 $art_shortname=$cfg_df_ext=.html; 改为 $art_shortname=$cfg_df_ext=.sh...

织梦教程 织梦文档 织梦CMS snh102 • 2024-10-06 • 最后回复来自 snh103
5
snh102

织梦CMS友情链接调用标签的高级玩法

你是否,还在为 {dede:flinktype type=dedecms}{dede:flink/}{/dede:flinktype} 织梦调用标签发愁。或者是{dede:flink}[field:link/]{/dede:flink} 这种调用方式惆怅。 织梦程序,以上两种调用方式,这种固定式、框架式、自由度低、...

织梦教程 友情链接 织梦标签 snh102 • 2024-06-29
snh102

DeDeBIZ织梦动态TAG标签改成拼音伪静态的方法

DeDeBIZ有生成静态TAG标签功能,默认却是动态+ID链接版,生成后还有N个目录版。 在上一篇《 DeDeBIZ/DeDeV6:TAG标签改为拼音ID静态版 》DeDeV6织梦教程中,我将DeDeBIZ的TAG标签改为拼音ID静态版。但是,有站长说,...

织梦TAG标签 织梦伪静态 snh102 • 2024-07-17 • 最后回复来自 snh102
3
snh102

邀请好友助力获积分

新功能来啦!邀请好友助力获得积分! 为草根站长们加油,为织梦技术论坛打卡! 为织梦站长们排忧,解决各种织梦网站问题! 教程太少不够看,人数太少不活跃,帖子不多没教程... 作为站长,不推广、不...

网站公告 snh102 • 2024-09-02
snh102

论坛首页新增最新、最热、热评、收藏等帖子排序功能

「功能上新」又有新功能,在论坛首页,支持帖子分页排序啦! 新增最新帖子、最热帖子、热评帖子、收藏帖子等支持帖子排序分页功能。 同时,还写入网站地图!哈哈,网站每天都在改版,怕你找不到,...

网站公告 snh102 • 2024-08-19
snh102

DeDeBIZ织梦自动审核文档+织梦自动定时审核生成插件

织梦CMS定时审核生成织梦插件下载。实现挂机、定时、自动、审核、生成文档。 《 织梦自动发布和自动更新文章 》不能像它自动发布、自动更新文档的都不好用。 曾经春哥开发的,春哥开发的必属精品。织...

织梦插件 定时审核 自动更新 snh102 • 2024-07-16 • 最后回复来自 snh102
1
snh102

织梦列表分页限制只生成前10页的方法

DeDeCMS、DeDeBIZ、DeDeV6、DeDeCMSV6等都是织梦程序,织梦标签、织梦教程都是通用的。想列表分页只生成前10页,或者是前50页。这样的做法,可以加快后台生成速度,同时也能防止网站被采集。好了,废话不多说...

织梦教程 织梦列表 DeDeCMS snh102 • 2024-04-30
snh102

织梦网站后台被收录的解决办法

有坛友问我呀。这个《 史诗级织梦安全设置教程 》是怎么做的,她说织梦后台被收录了。我想了下,发现我以前写的代码,写的有点幼稚,还有点特别的搞笑,不仅麻烦还没有作用。 未按教程操作之前:人...

DeDeBIZ DeDeCMS 织梦后台 snh102 • 2024-08-02
snh102

DeDeBIZ开发流量统计表增加蜘蛛统计

网站统计工具,蜘蛛统计工具,不如自己织梦后台增加个蜘蛛统计。 DeDeBIZ织梦得德就有流量统计表,增加蜘蛛统计也并不是什么难事。 展示效果 特别注意 本插件基于 Dedev6.3.2-develop开发版 测试的,如果你的...

DeDeBIZ 织梦BIZ 织梦开发 snh102 • 2024-08-11 • 最后回复来自 snh102
1
snh102

DeDeBIZ一键切换全站动静态织梦插件

玩织梦,在于折腾,那先安装《 全站动静态 》够你折腾啦; 想鼓捣,用户体验,那就是换《 百度编辑器 》主打用户体验; 无论是开发者,或者是使用者,少了它们的话,只是个玩织梦的孩子。 废话少叙,...

织梦插件 snh102 • 2024-07-17 • 最后回复来自 dage999
6
snh102

DeDeBIZ自定义表单伪静态设置教程

自定义表单已改名,再将 diy.php 改为伪静态版。啥都不用改,只加伪静态规则就好啦! Nginx伪静态规则 RewriteEngineonRewriteRule^diy.html$apps/diy.php Apache伪静态规则 rewrite^/diy.html$/apps/diy.php; 你看,TA们是不是,都是...

织梦伪静态 织梦自定义表单 织梦表单 snh102 • 2024-08-09
snh102

Nginx配置文件网站日志切割方法

开启网站日志后,烦恼Nginx默认是不切割日志的,网站运行久了,就会生成大量日志。下面,小编教大家,让Nginx自动切割日志,每天都是新的网站日志。 教程开始 打开宝塔面板,管理网站,看到配置文件,...

网站日志 snh102 • 2024-07-02 • 最后回复来自 snh102
1
snh102

DeDeBIZ织梦修改data目录名的方法

最让人发笑的事情,莫过于村里才通网,亦或是使用的DeDeBIZ被DeDeCMS起诉。 在DeDeBIZ程序中,data缓存目录尚未改名。下面,小编教坛友把data目录改名了。 视频教程 看《 织梦CMS内容管理系统:最新织梦安全设...

DeDeBIZ DeDeV6 织梦BIZ snh102 • 2024-08-08
snh102

DeDeBIZ得德修改会员密码的方法

在大多数情况下,织梦站长都不喜欢折腾,一般都是在织梦后台修改会员密码。 但是,编辑、修改、保存、确定、返回、这些按钮啊,真没有SQL命令工具好用。 下面,我给大家整个,用SQL命令工具修改的方...

DeDeBIZ DeDeV6 织梦BIZ snh102 • 2024-08-21
snh102

DeDeBIZ全站启用伪静态使用教程

DeDeBIZ非常完美了,这个DeDeV6程序啊,DeDeBIZ系统内置好伪静态啦!我们只要点击开启就行了,但是开启以后,确实是有BUG君的,有些细节嘛...还得需要优化下啦! 效果展示 设置伪静态后,你的电脑站url会像如...

织梦伪静态 DeDeV6 snh102 • 2024-07-13
snh102

织梦修改templets目录名的方法

修改templets目录名,可以提高织梦模板安全、织梦系统安全、织梦网站安全等等。好了,废话少说,直接上教程。 一、打开 /include/common.inc.php 搜索 /templets 改为 /templetg 有2处,就随便改改,把 templets 目录改为...

织梦教程 DeDeCMS 织梦CMS snh102 • 2024-04-27
snh102

DeDeBIZ会员登陆不了的解决办法

在博客写过: DeDeBIZ登录成功后,又返回登录界面的解决办法。 DeDeBIZ历史版本下载。 就是将 v6.2.12 版的 /system/helpers/cookie.helper.php 文件与新版 V6.3.0 文件直接覆盖。 OK了,文件替换,问题解决。你再登录,就...

DeDeBIZ 织梦BIZ 织梦漏洞修复 snh102 • 2024-08-17
snh102

DedeBIZ更新标签时,取消TAG标签会自动加点击量的方法

DedeBIZ系统呀,虽然TAG标签是静态的,但是每次生成更新标签时,每个TAG标签都会自动加1点击量。经测试,确实,完美+1,是BUG啊!绝对是BUG了!下面附上修复方法。 打开 /system/archive/taglist.class.php 搜索 if($...

织梦教程 织梦TAG标签 织梦BIZ snh102 • 2024-04-29
snh102

DeDeBIZ在channelartlist中嵌套channel时,子栏目currentstyle高亮无效的解决办法

DeDeBIZ中,织梦dede:channel指定typeid子栏目调用currentstyle高亮无效的解决教程。 但在channelartlist中嵌套channel时,dede:channel指定typeid时currentstyle高亮会无效。 调用代码 {dede:channelartlisttypeid=toprow=4currentstyle=display:...

DeDeBIZ 织梦BIZ 织梦开发 snh102 • 2024-08-15
snh102

自动签到利器:没有什么是一段代码解决不了的

前几天上线的《 签到功能 》效果不是很理想。都是潜水大师,懒得连点击签到都不想。 为此,我只能用代码解决,用代码实现自动签到。只要打开织梦论坛,就实现自动签到了。 说到底呀,还是为了大数据...

网站公告 snh102 • 2024-08-21
Loading...