Maison développement back-end tutoriel 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>
Copier après la connexion

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

<script type="text/javascript"></script>
Copier après la connexion

这个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();
...
Copier après la connexion
在视图中将下面的 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>
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment mettre à jour la dernière version de Bybit Exchange? Y aura-t-il un impact s'il n'est pas mis à jour? Comment mettre à jour la dernière version de Bybit Exchange? Y aura-t-il un impact s'il n'est pas mis à jour? Feb 21, 2025 pm 10:54 PM

La façon de mettre à jour les échanges de recours varie selon la plate-forme et l'appareil: mobile: vérifiez les mises à jour et installez dans l'App Store. Client de bureau: vérifiez les mises à jour dans le menu d'aide et installez automatiquement. Page Web: Vous devez accéder manuellement au site officiel pour les mises à jour. Le défaut de mise à jour de l'échange peut entraîner des vulnérabilités de sécurité, des limitations fonctionnelles, des problèmes de compatibilité et une réduction de l'efficacité de l'exécution des transactions.

GATEIO Téléchargement officiel Adresse GATEIO Téléchargement officiel Android Version GATEIO Téléchargement officiel Adresse GATEIO Téléchargement officiel Android Version Feb 21, 2025 pm 03:00 PM

Gate.io fournit une application mobile officielle qui permet aux utilisateurs de télécharger la version Android via les étapes suivantes: Visitez le site officiel, cliquez sur le bouton "Télécharger", sélectionnez l'option "Android", scannez le code QR ou cliquez sur "Google Player " lien. Actuellement, Gate.io ne fournit pas une application mobile iOS officielle.

Top 10 du logiciel de trading de devises numériques (dernière mise à jour en 2025) Top 10 du logiciel de trading de devises numériques (dernière mise à jour en 2025) Feb 14, 2025 pm 05:33 PM

À mesure que le marché de la monnaie numérique s'épanouit, l'achat et la vente d'actifs numériques sont devenus plus faciles que jamais. Cet article met en évidence les dix premiers logiciels de trading de devises numériques en 2025 qui peuvent aider les traders à participer facilement et en toute sécurité à participer au marché des devises numériques. Nous évaluons ces logiciels en fonction de la convivialité, des mesures de sécurité, des frais et d'autres facteurs clés pour fournir un guide complet pour prendre des décisions éclairées.

Prévision du prix des pièces PEPU pour 2025 Prévision du prix des pièces PEPU pour 2025 Dec 12, 2024 am 11:32 AM

La prévision de prix de PEPU Coin pour 2025 est basée sur une analyse complète de la modélisation technique, fondamentale, consensuelle et statistique. Le modèle de prévision prend en compte des facteurs tels que le sentiment du marché, l'environnement réglementaire, les évolutions technologiques et les facteurs macroéconomiques qui influencent les prix. De plus, PEPU Coin peut être comparé à d’autres crypto-monnaies telles que BTC, ETH, BNB, USDC et XRP pour comprendre son potentiel d’investissement et ses avantages uniques. Une analyse plus approfondie explore également la valeur potentielle de la pièce PEPU, son pouvoir de détention à long terme et sa probabilité d'atteindre 1 $ au cours des 5 prochaines années.

Tutoriel détaillé sur la façon de s'inscrire à Binance (2025 Guide du débutant) Tutoriel détaillé sur la façon de s'inscrire à Binance (2025 Guide du débutant) Mar 18, 2025 pm 01:57 PM

Cet article fournit un guide complet sur les paramètres d'enregistrement et de sécurité des binances, couvrant les préparations de pré-inscription (y compris l'équipement, le courrier électronique, le numéro de téléphone mobile et la préparation des documents d'identité), et introduit deux méthodes d'enregistrement sur le site officiel et l'application, ainsi que différents niveaux de vérification d'identité (KYC). De plus, l'article se concentre également sur les étapes de sécurité clés telles que la configuration d'un mot de passe de fonds, l'activation de la vérification à deux facteurs (2FA, y compris Google Authenticator et SMS Verification) et la mise en place de codes anti-phishing, aidant les utilisateurs à s'inscrire et à utiliser la plate-forme de binance de binance pour les transactions de crypto-monnaie en toute sécurité et pratique. Assurez-vous de comprendre les lois et réglementations pertinentes et les risques de marché avant de négocier et d'investir avec prudence.

Top 10 des échanges de devises asiatiques 2025 derniers classements Top 10 des échanges de devises asiatiques 2025 derniers classements Feb 14, 2025 pm 11:12 PM

Avec le marché des devises virtuels en plein essor, les échanges de crypto-monnaie en Asie augmentent également rapidement. Cet article compile les derniers classements des dix premiers échanges dans le cercle de devises asiatiques en 2025, offrant aux investisseurs une référence faisant autorité pour choisir une plateforme de trading fiable. Le classement est évalué de manière approfondie en fonction de plusieurs dimensions telles que le volume des transactions, la quantité d'actifs, la sécurité et l'expérience utilisateur, visant à aider les investisseurs à sélectionner le meilleur échange qui convient à leurs besoins commerciaux.

Les pirates choquaient l'industrie: comment s'assurer que vos fonds sont sécurisés à l'ère des actifs numériques Les pirates choquaient l'industrie: comment s'assurer que vos fonds sont sécurisés à l'ère des actifs numériques Feb 25, 2025 pm 12:27 PM

À l'ère des actifs numériques, la sécurité des capitaux dépend non seulement de la garantie de sécurité fournie par l'échange, mais nécessite également une protection active du côté utilisateur. Grâce à des portefeuilles matériels, à de multiples authentifications, à un stockage décentralisé et à d'autres mesures, combinés à des habitudes de fonctionnement prudentes, le risque de piratage peut être considérablement réduit et les fonds personnels peuvent être assurés.

Top 10 des applications de trading de pièces numériques virtuelles classées 2025 Top 10 des applications de trading de pièces numériques virtuelles classées 2025 Mar 04, 2025 pm 12:09 PM

Ranking of the top ten virtual digital currency trading apps in 2025: OKX has a strong engine and good risk control; Binance's leading transaction volume and a full ecosystem; Gate.io's old brand is safe and has many currencies; Huobi has a great influence in Asia; Kraken compliance and security; Coinbase is friendly; KuCoin has rich currency; Crypto.com innovative; Bitfinex tools are professional; MEXC is growing fast.

See all articles