Yii 2 将 Gravatar 头像图片做本地化缓存
Gravatar 是全球公认头像,但头像图片有时候访问奇慢无比,将整个页面的加载速度降了下来,如果能将头像图片缓存到本地,并设置过期时间,那性能会飞速提高,以下代码是 Yii2 的自定义 Helper 中的代码片断,用于实现 Gravatar 本地化访问。
public function gravatar($email, $s = 80, $atts = [], $d = 'mp', $r = 'g')
{
$key = md5(strtolower(trim($email)));
$img_file = Yii::getAlias("@webroot/uploads/avatar/$key.jpg");
$img_url = Yii::getAlias("@web/uploads/avatar/$key.jpg");
$noavatar_file = Yii::getAlias('@webroot/images/noavatar.jpg');
$noavatar_url = Yii::getAlias('@web/images/noavatar.jpg');
// 缓存时间 30 天,超过 30 天会重新到 gravatar.com 去取
if (!file_exists($img_file) || filemtime($img_file) < time() - 3600 * 24 * 30) {
file_put_contents($img_file, file_get_contents("https://www.gravatar.com/avatar/$key?s=$s&d=$d&r=$r"));
}
// 没有设置过头像的用户,显示自定义头像
if (md5_file($img_file) == md5_file($noavatar_file)) {
$img_url = $noavatar_url;
}
return Html::img($img_url, $atts);
}
我要评论
文章归档
2024 年 12 月
1
2024 年 11 月
1
2024 年 10 月
2
2024 年 09 月
2
2024 年 07 月
1
2024 年 06 月
1
2024 年 04 月
1
2024 年 03 月
1
2024 年 01 月
2
2023 年 11 月
2
文章日历
2024 年 12 月 | ||||||
---|---|---|---|---|---|---|
日 | 一 | 二 | 三 | 四 | 五 | 六 |
01 | 02 | 03 | 04 | 05 | 06 | 07 |
08 | 09 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
30 | 31 | 01 | 02 | 03 | 04 | 05 |
文章标签
- Linux
- Go
- Yii
- 新浪
- CentOS
- PHP
- Git
- WSL
- Composer
- Mac
- 入职
- Bootstrap
- pyenv
- UCenter
- 厦门
- 出差
- 长沙
- 湖南卫视
- 微博
- Tengine
- YUI
- 泰国
- pecl
- 优化
- GitLab
- 迁移
- rootless
- 年会
- 生日
- Tengin
- RedHat
- Sphinx
- cygwin
- Windows
- Tmux
- Zsh
- 升级
- MySQL
- sql_mode
- Shadowsockets
- 面向对象
- HTTP
- 状态码
- grep
- unoconv
- PPT
- Nginx
- htpasswd
- golang
共 0 条评论