表情符号被截断 速求绝世高手来一如来神掌
昨晚我疯狂的用代码加了好几项功能(不过我只是借用朋友的代码再自己稍加修改,呵呵)
1、免插件侧边栏读者墙,效果在文章页面的sidebar就能看到。
2、免插件单独的读者墙页面,效果在这里>> 读者
3、免插件最新评论,效果在每个页面就能看到。
基本上已经很完美了,但是一看最新评论,问题马上就出来了?那就是最新评论中的表情符号被截断问题。
问题如下
我的最新评论采用的是免插件版,里面有个截取函数,截取每条评论中的前N个字符,多余的用“…”代替。
本来已经是很完美了,因为用了 convert_smilies()函数将表情符号转换后,大部分的表情都显示正确了。
但是仍有一部分表情符号没有转换,哪一部分呢?
评论字数超过15个字符(我在前面说过截取每条评论中的前N个字符,那个N就是15了),表情字符开始于第12或第13或第14或第15个。
比如我的标签符号是这种形式的 :(X): (X为1到24的数字)
如果评论的第12或第13或第14或第15个字符开始为 :(X): 这种表情字符,那么就显示不了,因为他们被截断了。
效果看我下面的截图,第一条评论中的表情字符被截断,而最后一条则正常显示了。
这个问题的难点就在于,怎么能不让截断表情符号?
有朋友会解决的吗?
非特别说明,均为本站原创文章 转载请注明:原文摘自Zenoven自由人

这个问题。。。。不晓得,呵呵
[回复]
自由人 回复:
六月 15th, 2010 at 12:37
额,我这个问题好像还真是不那么容易解决,难道非得再写个函数什么的?
[回复]
这个问题我也有,不过被我无视了,哈哈
如果要解决的话就要用正则吧
[回复]
自由人 回复:
六月 15th, 2010 at 12:48
额。。。看来确实不太容易啊
[回复]
这个问题解决起来确实不容易啊~
[回复]
自由人 回复:
六月 15th, 2010 at 12:55
莫非真得把这个问题放下
[回复]
懒得管这个东西~~
[回复]
自由人 回复:
六月 15th, 2010 at 13:20
哎。。。有时候完美好像不太容易实现哪
[回复]
我都不在侧边显示评论这些了
[回复]
自由人 回复:
六月 15th, 2010 at 13:36
我也去了很久一段了,不过最近又加上了,不然觉得博客太空了
[回复]
没注意,忽视吧
[回复]
自由人 回复:
六月 15th, 2010 at 13:36
大牛们都不会 看来真的要杯具了
[回复]
技术盲飘过啊……
[回复]
自由人 回复:
六月 15th, 2010 at 14:02
呵呵,多了解点就会拉
[回复]
silsnow 回复:
六月 15th, 2010 at 16:53
唉,天生对技术不敏感……
[回复]
自由人 回复:
六月 15th, 2010 at 17:44
只要能达到自己的要求就好了
[回复]
大牛们都不行,我等小牛岂能行??
[回复]
自由人 回复:
六月 15th, 2010 at 17:41
试试嘛~~ 说不定下个大牛就是你啦~
[回复]
不去理它是最好的。呵呵
如果表情:开始。:结束。
作一下判断咯~~
[回复]
自由人 回复:
六月 15th, 2010 at 18:56
哎。。。不理他了,其实出现这种情况的几率也不大,如果要做判断的话还得写函数什么的挺麻烦
[回复]
柳城 回复:
六月 17th, 2010 at 16:09
就是说嘛。反正也没人留意那东西。
[回复]
不让它输出表情不就成了
[回复]
自由人 回复:
六月 15th, 2010 at 22:02
这个是评论的一部分哪~~
[回复]
我还没有表情!!!
[回复]
自由人 回复:
六月 15th, 2010 at 22:02
呵呵,这个可以有的
[回复]
我是来灌水的
PS:为什么你右侧的评论排行不显示数量?
[回复]
自由人 回复:
六月 15th, 2010 at 22:02
这个我还真没发现,Firefox下面显示的,我找下解决方法去,谢谢提醒!
[回复]
自由人 回复:
六月 15th, 2010 at 22:18
已经搞定啦~~ 呵呵,现在可以显示了
[回复]
飞晏 回复:
六月 16th, 2010 at 17:35
哦 为了不影响灌水 再建议你邮件回复评论
[回复]
还没空折腾wp
[回复]
自由人 回复:
六月 15th, 2010 at 22:50
这个有空了可以折腾下的哦~~
[回复]
哎 你的表情不会动。
[回复]
自由人 回复:
六月 16th, 2010 at 22:51
额。。。
[回复]
果然是高手啊
[回复]
把截取后的评论作个replace,就可以了。
写一个正则表达式来实现。模型是“:(N)…”,替换为完整的“:(N):…”,需要写个pattern。
注意,“:(N)…”还可能是“:(N…”、“:(…”、“:…”
[回复]
记忆盒子 回复:
六月 18th, 2010 at 15:39
补充:Pattern=”:(.[^\.]*)…” 可匹配上述几个字符串
[回复]
自由人 回复:
六月 18th, 2010 at 19:05
这个我也想过了,这个也只是解决问题里面的一部分,如果截取后的表情符号只有:( 或是: 就没办法替换了,因为不知道该匹配哪一个了.也就是说只要评论符号不缩减弄成一个字符就会有问题。
[回复]
记忆盒子 回复:
六月 19th, 2010 at 23:08
嗯,我就知道你会这么说。这两种情况,就replace为空吧。只考虑带数字的情况就可以了。
你也可以这样处理。
那就是在截取之前就判断第12、13、14、15个字符是什么,如果是表情符号的话,你就把截取字符串延长。这样,就可以保留完整的表情字符了。这种方法甚至不需要动用正则表达式。
[回复]
自由人 回复:
六月 19th, 2010 at 23:32
非常感谢你哈~~ 等有时间了好好鼓捣下,还有就是如果能有单个字符可以代表一个表情就好了,那样就不用考虑这些问题了
[回复]
我沒理它, 反正新評論一來馬上擠掉了.
[回复]
自由人 回复:
六月 19th, 2010 at 22:52
嗯,其实影响不大
[回复]
免插件最新评论 这个我想知道是怎么实现的
[回复]
自由人 回复:
七月 19th, 2010 at 22:59
有个代码的,需要?
[回复]
奥德雷的雷人事迹 回复:
七月 20th, 2010 at 23:37
嗯,给我个吧
[回复]
我表情符号搞了几天没搞上,气得我不弄了,还有一个就是评论邮件回复功能,TMD
[回复]
自由人 回复:
七月 19th, 2010 at 23:01
嗯?表情我是无插件实现的,第二个我是用的wp thread comment那个插件实现的
[回复]
Afio 回复:
七月 19th, 2010 at 23:04
都搞过,估计是我主机不支持 不过按理说 别人在我那的评论 就应该支持mail()函数啊 我晕
[回复]