首页 后端开发 php教程 将论坛帖子内容中的 smilies 表情转换为正常图片显示

将论坛帖子内容中的 smilies 表情转换为正常图片显示

Aug 08, 2016 am 09:30 AM
20 gif

不久前,在调用论坛回帖内容时遇到了 smilies 表情图片为 {:4_267:} ,下面说说解决方式。

在服务端时用正则将论坛(以Discuz7.2为例)帖子内容中的 smilies 图格式化成图片标签格式,然后在标签上附加上属性,以便于在视图中使用JS处理。
当然,这个可以自己去优化一下,这里起初是为了实现正常显示图片的目的。

foreach($postList as $key=>$val)
{
	$message = preg_replace('/<i class="pstatus">.*?(\s|(<br>))*/is', '', $val['message']);	//去除 本帖最后由 XX 于 2014-11-6 15:25 编辑
	//...省略其他code
	//论坛回帖内容中的 表情图片
	$message = preg_replace('/\{\:(\d)_(\d+)\:\}/im', '<img  class="smilies_n lazy" src="/static/imghw/default1.png" data-src="http://domain/forumdata/cache/smilies_var.js" reltype="\\1" relid="\\2"    style="max-width:90%" style="display:none;" alt="将论坛帖子内容中的 smilies 表情转换为正常图片显示" >', $message);
	$postList[$key]['message'] = trim($message);
}</i>
登录后复制

接下来在视图中引入 smilies_var.js文件

<script type="text/javascript"></script>
登录后复制

这个JS文件的内容大概如下

var smthumb = '20';
var smilies_type = new Array();
smilies_type[4] = ['炮炮兵', 'dabing'];smilies_type[5] = ['柏夫', 'bofu'];
var smilies_array = new Array();
smilies_array[4] = new Array();
smilies_array[4][1] = [['267', '{:4_267:}','dabing63.gif','20','20','50'],['248', '{:4_248:}','dabing65.gif','20','20','50'],['247', '{:4_247:}','dabing69.gif','20','20','50'],['246', '{:4_246:}','dabing39.gif','20','20','50'],['245', '{:4_245:}','dabing05.gif','20','14','50'],['244', '{:4_244:}','dabing45.gif','20','20','50'],['243', '{:4_243:}','dabing16.gif','20','20','50'],['242', '{:4_242:}','dabing67.gif','20','16','50'],['241', '{:4_241:}','dabing02.gif','10','20','25'],['240', '{:4_240:}','dabing60.gif','20','17','50'],['239', '{:4_239:}','dabing46.gif','20','20','50'],['238', '{:4_238:}','dabing56.gif','20','20','50'],['237', '{:4_237:}','dabing34.gif','20','20','50'],['236', '{:4_236:}','dabing06.gif','20','20','50'],['235', '{:4_235:}','dabing10.gif','20','20','50'],['234', '{:4_234:}','dabing04.gif','20','20','50'],['233', '{:4_233:}','dabing11.gif','20','20','50'],['249', '{:4_249:}','dabing14.gif','10','20','25'],['250', '{:4_250:}','dabing54.gif','20','20','50'],['266', '{:4_266:}','dabing38.gif','20','20','50'],['265', '{:4_265:}','dabing17.gif','20','20','50'],['264', '{:4_264:}','dabing66.gif','20','20','50'],['263', '{:4_263:}','dabing64.gif','20','16','50'],['262', '{:4_262:}','dabing18.gif','20','20','50'],['261', '{:4_261:}','dabing68.gif','20','20','50'],['260', '{:4_260:}','dabing47.gif','20','20','50'],['259', '{:4_259:}','dabing41.gif','20','20','50'],['258', '{:4_258:}','dabing51.gif','20','20','50'],['257', '{:4_257:}','dabing52.gif','20','20','50'],['256', '{:4_256:}','dabing40.gif','20','20','50'],['255', '{:4_255:}','dabing50.gif','20','20','50'],['254', '{:4_254:}','dabing08.gif','20','19','50'],['253', '{:4_253:}','dabing58.gif','20','20','50'],['252', '{:4_252:}','dabing25.gif','20','20','50'],['251', '{:4_251:}','dabing57.gif','20','15','50'],['232', '{:4_232:}','dabing29.gif','20','20','50'],['231', '{:4_231:}','dabing31.gif','20','20','50'],['212', '{:4_212:}','dabing03.gif','20','20','50'],['211', '{:4_211:}','dabing01.gif','20','20','50'],['210', '{:4_210:}','dabing71.gif','20','20','50']];
smilies_array[4][2] = [['209', '{:4_209:}','dabing55.gif','20','17','50'],['208', '{:4_208:}','dabing53.gif','20','20','50'],['207', '{:4_207:}','dabing22.gif','20','20','50'],['206', '{:4_206:}','dabing28.gif','20','20','50'],['205', '{:4_205:}','dabing36.gif','20','20','50'],['204', '{:4_204:}','dabing48.gif','20','20','50'],['203', '{:4_203:}','dabing42.gif','20','20','50'],['202', '{:4_202:}','dabing12.gif','20','20','50'],['201', '{:4_201:}','dabing33.gif','20','20','50'],['200', '{:4_200:}','dabing20.gif','20','20','50'],['199', '{:4_199:}','dabing44.gif','20','20','50'],['198', '{:4_198:}','dabing23.gif','20','20','50'],['197', '{:4_197:}','dabing07.gif','20','20','50'],['213', '{:4_213:}','dabing43.gif','20','20','50'],['214', '{:4_214:}','dabing72.gif','20','20','50'],['230', '{:4_230:}','dabing19.gif','20','20','50'],['229', '{:4_229:}','dabing59.gif','20','20','50'],['228', '{:4_228:}','dabing27.gif','20','20','50'],['227', '{:4_227:}','dabing21.gif','20','20','50'],['226', '{:4_226:}','dabing30.gif','20','20','50'],['225', '{:4_225:}','dabing24.gif','20','20','50'],['224', '{:4_224:}','dabing13.gif','20','20','50'],['223', '{:4_223:}','dabing37.gif','20','20','50'],['222', '{:4_222:}','dabing62.gif','19','20','46'],['221', '{:4_221:}','dabing70.gif','20','20','50'],['220', '{:4_220:}','dabing09.gif','20','20','50'],['219', '{:4_219:}','dabing15.gif','16','20','39'],['218', '{:4_218:}','dabing61.gif','20','20','50'],['217', '{:4_217:}','dabing26.gif','20','20','50'],['216', '{:4_216:}','dabing35.gif','20','20','50'],['215', '{:4_215:}','dabing49.gif','20','20','50'],['196', '{:4_196:}','dabing32.gif','20','20','50']];
smilies_array[5] = new Array();
...
登录后复制
在视图中将下面的 JS放在末尾,否则会因加载顺序导致没能获取到dom或smilies_var.js中的数组而报错。
这里使用的是 jQuery来操作

var baseSrc = 'http://domain/images/smilies/';	//smilies_var.js中的图片存放地址
var OSmilies = $('.smilies_n');	//所有class名为 .smilies_n 标签
var i, flag, OEle, OAttr, OId, OName, OArr;
for(i=0;i<osmilies.length flag="false;" if undefined continue oele="$(OSmilies[i]);" oattr="OEle.attr('reltype');//标签的属性值" oid="parseInt(OEle.attr('relid'));" smilies_type smilies_array oname="smilies_type[OAttr][1];" dabing oarr="smilies_array[OAttr];" for break oele.attr basesrc oele.show><br>以上就可以对论坛内容中的表情图片转换,关于其他的BbCode后续整理了再发。<br>
                
                
                <p>
                    以上就介绍了将论坛帖子内容中的 smilies 表情转换为正常图片显示,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。</p>
                <p>
                    </p>
             </osmilies.length>
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Bybit交易所最新版本怎么更新?不更新会有影响吗? Bybit交易所最新版本怎么更新?不更新会有影响吗? Feb 21, 2025 pm 10:54 PM

更新ByBit交易所的方式因平台和设备而异:移动设备:在应用商店中检查更新并安装。桌面客户端:在“帮助”菜单中检查更新并自动安装。网页端:需要手动访问官网进行更新。不更新交易所可能导致安全漏洞、功能限制、兼容性问题和交易执行效率降低。

gateio官方下载地址 gateio官方下载安卓版 gateio官方下载地址 gateio官方下载安卓版 Feb 21, 2025 pm 03:00 PM

Gate.io提供官方移动应用程序,允许用户通过以下步骤下载安卓版:访问官方网站,点击“下载”按钮,选择“安卓”选项,扫描QR码或点击“Google Play”链接。目前,Gate.io不提供官方iOS移动应用程序,用户可通过移动网络浏览器访问网站或通过Android模拟器或第三方服务在iOS设备上安装安卓版。

数字货币排名前十交易软件(2025最近更新) 数字货币排名前十交易软件(2025最近更新) Feb 14, 2025 pm 05:33 PM

随着数字货币市场的蓬勃发展,买卖数字资产变得比以往任何时候都更加容易。本文重点介绍了 2025 年排名前十的数字货币交易软件,这些软件可以帮助交易者轻松安全地参与数字货币市场。我们根据用户友好性、安全措施、费用和其他关键因素对这些软件进行了评估,以提供交易者做出明智决定的全方位指南。

binance怎么注册详细教程(2025新手指南) binance怎么注册详细教程(2025新手指南) Mar 18, 2025 pm 01:57 PM

本文提供Binance币安注册及安全设置的完整指南,涵盖注册前的准备工作(包括设备、邮箱、手机号及身份证明文件准备),详细介绍了官网及APP两种注册方式,以及不同级别的身份验证(KYC)流程。此外,文章还重点讲解了如何设置资金密码、开启双重验证(2FA,包括谷歌身份验证器和短信验证)以及设置防钓鱼码等关键安全步骤,帮助用户安全便捷地注册和使用Binance币安平台进行加密货币交易。 请务必在交易前了解相关法律法规及市场风险,谨慎投资。

PEPU币2025年价格预测 PEPU币2025年价格预测 Dec 12, 2024 am 11:32 AM

PEPU 币的 2025 年价格预测是基于技术、基本面、共识和统计建模的综合分析。预测模型考虑了市场情绪、监管环境、技术发展和宏观经济因素等影响价格的因素。此外,PEPU 币还可以与其他加密货币(如 BTC、ETH、BNB、USDC 和 XRP)进行比较,以了解其投资潜力和独特优势。进一步分析还探讨了 PEPU 币的潜在价值、长期持有能力和在未来 5 年内达到 1 美元的可能性。

亚洲币圈十大交易所排名2025最新排名 亚洲币圈十大交易所排名2025最新排名 Feb 14, 2025 pm 11:12 PM

随着虚拟货币市场的蓬勃发展,亚洲地区的加密货币交易所也在迅速崛起。本文整理了 2025 年最新的亚洲币圈十大交易所排名,为投资者提供了选择可靠交易平台的权威参考。排名依据交易量、资产数量、安全性和用户体验等多个维度综合评定,旨在帮助投资者甄选出适合自身交易需求的最佳交易所。

十大虚拟数字币交易app排行榜2025 十大虚拟数字币交易app排行榜2025 Mar 04, 2025 pm 12:09 PM

2025年十大虚拟数字币交易app排行:OKX引擎强、风控好;Binance交易量领先、生态全;Gate.io老牌安全、币种多;Huobi亚洲影响力大;Kraken合规安全;Coinbase新手友好;KuCoin币种丰富;Crypto.com创新;Bitfinex工具专业;MEXC增长快 。

欧易交易所app手机版APK下载2025 欧易交易所app手机版APK下载2025 Mar 18, 2025 pm 01:03 PM

欧易交易所App是一款功能强大的数字资产交易应用,支持法币交易、币币交易和合约交易,用户可随时随地进行便捷操作。 App继承了欧易平台24小时不间断交易的特性,提供简洁明了的操作界面,即使新手也能快速上手。无论市场波动还是系统维护,App都会及时推送公告,保障用户权益。 但需注意,数字资产交易存在风险,用户需关注市场动态,做好风险管理,并从正规渠道下载官方App,谨防诈骗。

See all articles