포럼 게시물의 웃는 이모티콘을 일반 이미지 표시로 변환
不久前,在调用论坛回帖内容时遇到了 smilies 表情图片为 {:4_267:} ,下面说说解决方式。
在服务端时用正则将论坛(以Discuz7.2为例)帖子内容中的 smilies 图格式化成图片标签格式,然后在标签上附加上属性,以便于在视图中使用JS处理。
当然,这个可以自己去优化一下,这里起初是为了实现正常显示图片的目的。
foreach($postList as $key=>$val) { $message = preg_replace('/<i class="pstatus">.*?<\/i>(\s|(<br>))*/is', '', $val['message']); //去除 本帖最后由 XX 于 2014-11-6 15:25 编辑 //...省略其他code //论坛回帖内容中的 表情图片 $message = preg_replace('/\{\:(\d)_(\d+)\:\}/im', '<img class="smilies_n" src="" reltype="\\1" relid="\\2" height="50" style="display:none;">', $message); $postList[$key]['message'] = trim($message); }
接下来在视图中引入 smilies_var.js文件
<script src="http://domain/forumdata/cache/smilies_var.js" 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(); ...
这里使用的是 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;i++) { flag = false; if(OSmilies[i] == undefined) continue; OEle = $(OSmilies[i]); //第几个标签 OAttr = OEle.attr('reltype');//标签的属性值 OId = parseInt(OEle.attr('relid')); if( smilies_type[OAttr] == undefined || smilies_array[OAttr] == undefined || OId <= 0 ) continue; OName = smilies_type[OAttr][1]; //type的名称 dabing、bofu OArr = smilies_array[OAttr]; //存放图片名的大数组 for(sj=1;sj<OArr.length;sj++) { if(flag) break; //若找到了 OId对应的图片,退出当前OId的循环 for(j=0;j<OArr[sj].length;j++) { if( OArr[sj][j][0] == OId ) { OEle.attr('src', baseSrc + OName + '/' + OArr[sj][j][2]); OEle.show(); flag = true; break; } } } }
以上就可以对论坛内容中的表情图片转换,关于其他的BbCode后续整理了再发。
以上就介绍了将论坛帖子内容中的 smilies 表情转换为正常图片显示,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Bybit Exchange를 업데이트하는 방법은 플랫폼 및 장치에 따라 다릅니다. 모바일 : App Store에 업데이트를 확인하고 설치하십시오. 데스크탑 클라이언트 : 도움말 메뉴에서 업데이트를 확인하고 자동으로 설치하십시오. 웹 페이지 : 업데이트를 위해 공식 웹 사이트에 수동으로 액세스해야합니다. 교환을 업데이트하지 않으면 보안 취약성, 기능 제한, 호환성 문제 및 거래 실행 효율이 줄어 듭니다.

Gate.io는 사용자가 다음 단계를 통해 Android 버전을 다운로드 할 수있는 공식 모바일 응용 프로그램을 제공합니다. 공식 웹 사이트를 방문하거나 "다운로드"버튼을 클릭하거나 "Android"옵션을 선택하거나 QR 코드를 스캔하거나 "Google Play를 클릭하십시오. "링크. 현재 GATE.IO는 공식 iOS 모바일 앱을 제공하지 않습니다.

디지털 통화 시장이 번창함에 따라 디지털 자산을 구매하고 판매하는 것이 그 어느 때보 다 쉬워졌습니다. 이 기사는 2025 년 상위 10 개 디지털 통화 거래 소프트웨어를 강조하여 트레이더가 디지털 통화 시장에 쉽고 안전하게 참여할 수 있도록 도와줍니다. 우리는 사용자 친화 성, 보안 조치, 수수료 및 기타 주요 요소를 기반으로 이러한 소프트웨어를 평가하여 정보에 입각 한 결정을 내리는 거래자에게 포괄적 인 안내서를 제공합니다.

이 기사는 Binance 등록 및 보안 설정에 대한 완전한 가이드를 제공하며, 사전 등록 준비 (장비, 이메일, 휴대폰 번호 및 ID 문서 준비 포함)를 포함하고 공식 웹 사이트 및 앱에 두 가지 등록 방법과 다양한 Identity Verification (KYC) 프로세스를 소개합니다. 또한이 기사는 펀드 비밀번호 설정, 2 요인 검증 (Google Authenticator 및 SMS Verification을 포함한 2FA) 및 피싱 코드를 설정하여 사용자가 Cryptocurrency Transactions를 안전하고 편리하게 등록하고 사용하는 등의 주요 보안 단계에 중점을 둡니다. 거래하기 전에 관련 법률 및 규정 및 시장 위험을 이해하고주의해서 투자하십시오.

PEPU 코인의 2025년 가격 예측은 기술, 기본, 합의 및 통계 모델링에 대한 포괄적인 분석을 기반으로 합니다. 예측 모델은 가격에 영향을 미치는 시장 정서, 규제 환경, 기술 개발, 거시경제적 요인 등의 요인을 고려합니다. 또한 PEPU 코인은 BTC, ETH, BNB, USDC 및 XRP와 같은 다른 암호화폐와 비교하여 투자 잠재력과 고유한 이점을 이해할 수 있습니다. 추가 분석에서는 PEPU 코인의 잠재적 가치, 장기 보유력 및 향후 5년 이내에 1달러에 도달할 가능성도 조사합니다.

급성장하는 가상 통화 시장으로 인해 아시아의 암호 화폐 거래소도 빠르게 증가하고 있습니다. 이 기사는 2025 년 아시아 통화 서클에서 상위 10 개 거래소의 최신 순위를 편집하여 투자자에게 신뢰할 수있는 거래 플랫폼을 선택할 수있는 권위있는 참조를 제공합니다. 순위는 거래량, 자산 수량, 보안 및 사용자 경험과 같은 여러 차원을 기반으로 포괄적으로 평가되며, 투자자가 거래 요구에 맞는 최상의 거래소를 선택할 수 있도록 도와줍니다.

2025 년의 최상위 디지털 트레이드 앱은 강력한 엔진과 완전한 생태계가 있습니다 빠르게 성장하고 있습니다.

OUYI Exchange 앱은 화폐 통화 거래, 통화 거래 및 계약 거래를 지원하는 강력한 디지털 자산 거래 응용 프로그램이며 사용자는 언제 어디서나 편리하게 운영 할 수 있습니다. 이 앱은 OUYI 플랫폼의 24 시간 중단되지 않은 트랜잭션의 특성을 물려 받고 간결하고 명확한 작동 인터페이스를 제공하므로 초보자조차도 빠르게 시작할 수 있습니다. 시장 변동 또는 시스템 유지 보수에 관계없이 앱은 사용자 권한 및 관심사를 보호하기 위해 즉시 발표를 펼칠 것입니다. 그러나 디지털 자산 거래에 위험이있는 경우 사용자는 시장 동향에주의를 기울이고 위험 관리에 적합한 작업을 수행하며 공식 채널에서 사기를 조심해야합니다.
