Emlog调用微语表情替换和作者昵称的实现

之前发过最新微语的调用方法,不过只是调用了微语文本内容和发布时间,以下由博主笑忘书继续给各位分享刚折腾好的调用最新微语的表情替换和发布作者昵称获取。

先给代码再说原理。以下是含有替换表情的微语调用代码:
<!-- 公告消息提示(调用最新微语) -->
<?php global $CACHE; $nt = $CACHE->readCache('newtw'); ?> 
<?php echo emoFormat($nt[0]['content']);?>(发表于<?php echo smartDate($nt[0]['date']);?>)

上面调用最新微语实现的原理是利用Emlog缓存机制,读取/content/cache/newtw.php里缓存的数据,该文件一般格式如下(三条微语,第一条和第二三条的作者不同):
<?php exit;//a:3:{

i:0;a:7:{s:2:"id";s:1:"3";
s:7:"content";s:14:"我666[开心]";
s:3:"img";s:0:"";
s:6:"author";s:1:"2";
s:4:"date";s:10:"1437894786";
s:8:"replynum";s:1:"0";
s:1:"t";s:14:"我666";}

i:1;a:7:{s
:2:"id";s:1:"2";
s:7:"content";s:33:"[呵呵][吃惊][偷笑]不错噢";
s:3:"img";s:0:"";
s:6:"author";s:1:"1";
s:4:"date";s:10:"1437890392";
s:8:"replynum";s:1:"0";
s:1:"t";s:290:"<img title="[呵呵]" src="http://xiaows.com/x/admin/editor/plugins/emoticons/images/1.gif"/><img title="[吃惊]" src="http://xiaows.com/x/admin/editor/plugins/emoticons/images/14.gif"/><img title="[偷笑]" src="http://xiaows.com/x/admin/editor/plugins/emoticons/images/25.gif"/>不错噢";
}

i:2;a:7:{
s:2:"id";s:1:"1";
s:7:"content";s:39:"使用微语记录您身边的新鲜事";
s:3:"img";s:0:"";
s:6:"author";s:1:"1";
s:4:"date";s:10:"1437797327";
s:8:"replynum";s:1:"0";
s:1:"t";s:39:"使用微语记录您身边的新鲜事";
}}

观察上面的代码(已经整理过,加上换行),我们先读取newtw缓存,如 global $CACHE; $nt = $CACHE->readCache('newtw');,接着通过$nt[0]定位到第一部分,获取其内容就是$nt[0]['content']

然后是获取发布时间,由于得到的是时间戳类型(1437894786),还需要利用Emlog核心文件function.base.php的时间转化函数,最后便是这样:smartDate($nt[0]['date'])

表情是通过将特定文本替换成对应图标而成,同样利用到了function.base.php里的emFormat(字符串)函数,即emFormat($nt[0]['content'])便可。

不过,如果注意看上面内容的话,也可以直接用$nt[0]['t']获取已经替换表情的内容,好吧,明显这样更直接了当。

我个人觉得这样添加表情挺不错的,[呵呵],单从字面上就可以判断要表达的意思。以下便是该替换表情函数,不妨看看:
/**
 * 替换表情
 *
 * @param $t
 */
function emoFormat($t){
$emos = array('[耶]'=>'0.gif', '[呵呵]'=>'1.gif', '[悲伤]'=>'2.gif', '[抓狂]'=>'3.gif', '[衰]'=>'4.gif', '[花心]'=>'5.gif', '[哼]'=>'6.gif', '[泪]'=>'7.gif', '[害羞]'=>'8.gif', '[酷]'=>'9.gif', '[晕]'=>'10.gif', '[挤眼]'=>'11.gif', '[鬼脸]'=>'12.gif', '[汗]'=>'13.gif', '[吃惊]'=>'14.gif', '[发呆]'=>'15.gif', '[闭嘴]'=>'16.gif', '[撇嘴]'=>'17.gif', '[疑问]'=>'18.gif', '[睡觉]'=>'19.gif', '[NO]'=>'20.gif', '[大哭]'=>'21.gif', '[爱你]'=>'22.gif', '[嘻嘻]'=>'23.gif', '[生病]'=>'24.gif', '[偷笑]'=>'25.gif', '[思考]'=>'26.gif', '[玫瑰]'=>'27.gif', '[心]'=>'28.gif', '[伤心]'=>'29.gif', '[咖啡]'=>'30.gif', '[音乐]'=>'31.gif', '[下雨]'=>'32.gif', '[晴天]'=>'33.gif', '[星星]'=>'34.gif', '[月亮]'=>'35.gif');
	if(!empty($t) && preg_match_all('/\[.+?\]/',$t,$matches)){
$matches = array_unique($matches[0]);
foreach ($matches as $data) {
if(isset($emos[$data]))
$t = str_replace($data,'<img title="'.$data.'" src="'.BLOG_URL.'admin/editor/plugins/emoticons/images/'.$emos[$data].'"/>',$t);
}
}
return $t;
}

再说说如何获取发布作者的昵称,其实通过上面给出的微语缓存文件可知,$nt[0]['author']可以输出作者的序号(比如第一位作者即博主是:1),这时候,我们再利用user缓存数据,得到作者昵称:
$user_cache = $CACHE->readCache('user'); echo $user_cache[$nt[0]['author']]['name'];

综上所述,最后的最新微语内容时间调用替换表情和获取作者的代码如下:
<!-- 公告消息提示(调用最新微语) -->
<?php global $CACHE; $nt = $CACHE->readCache('newtw'); ?> 
<?php echo emoFormat($nt[0]['content']);?>(<?php $user_cache = $CACHE->readCache('user'); echo $user_cache[$nt[0]['author']]['name'];?>发表于<?php echo smartDate($nt[0]['date']);?>)

折腾代码不容易,就这样。


感谢作者:笑忘书的投稿,欢迎大家投稿: http://likinming.com/post-87.html


版权所有:《博客之家
文章标题:《Emlog调用微语表情替换和作者昵称的实现
除非注明,文章均为 《博客之家》 原创
转载请注明本文短网址:https://bk.likinming.com/post-555.html  [生成短网址]

日期:2015年07月27日 星期一   分类:好文分享   浏览(15906)   评论(12)
本文已经被百度收录,点击查看详情
声明:本页信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。免费发布信息

留言/评论:◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

自动获取QQ

昵称

邮箱

网址

10楼、月饼盒厂家 [回复该留言]
2015-07-28 11:05
看到代码就头晕了
9楼、wys [回复该留言]
2015-07-28 06:19
折腾就可能出新意。
昨天老师谈了些关于hk及占中的问题,李兄,97以后真是发展滞后或是倒退了吗??
李明 [回复该留言]
2015-07-28 07:42
@wys:我觉得倒退了,现在香港人怨气特別多、生活压力大,已不再是以前的香港人。
8楼、淘米纪 [回复该留言]
2015-07-27 20:05
挺技术的,,可以研究研究
7楼、IT疯狂女 [回复该留言]
2015-07-27 16:55
Emlog没搞过
6楼、汉克 [回复该留言]
2015-07-27 15:43
很实用,谢谢分享
5楼、群伟伟博客 [回复该留言]
2015-07-27 12:39
不错不错,作者辛苦了,感谢分享,

如果大家还没看够也不要紧,可以到我博客看看,

绝对让你看个够!!![嘻嘻]
4楼、蓝色悠悠 [回复该留言]
2015-07-27 11:34
以前我是开启微语功能的,但后来觉得没啥大用就关闭了,先学习一下~
3楼、姜辰 [回复该留言]
2015-07-27 11:09
强大啊···
2楼、boke123导航 [回复该留言]
2015-07-27 09:52
没想到Emlog也这么强大啊
1楼、笑忘书 [回复该留言]
2015-07-27 06:44
6时整就发了,难道李明兄用了定时发布
李明 [回复该留言]
2015-07-27 07:02
@笑忘书:全是自己发布的,谢谢投稿。

网站收录提交

  • 名称:
  • 网址:

网址统计

  • 收录网址:970 个
  • 发布文章:2520 条
  • 本站运行:5年7月
Copyright © 2012 - 2018 by 李明关于本站免责声明本站下载站点地图sitemap广告联系
2875