首页 > WordPress, 技术 > 表情符号被截断 速求绝世高手来一如来神掌

表情符号被截断 速求绝世高手来一如来神掌

2010年6月15日 作者: 发表评论 阅读评论

昨晚我疯狂的用代码加了好几项功能(不过我只是借用朋友的代码再自己稍加修改,呵呵)

1、免插件侧边栏读者墙,效果在文章页面的sidebar就能看到。

2、免插件单独的读者墙页面,效果在这里>> 读者

3、免插件最新评论,效果在每个页面就能看到。

基本上已经很完美了,但是一看最新评论,问题马上就出来了?那就是最新评论中的表情符号截断问题

问题如下

我的最新评论采用的是免插件版,里面有个截取函数,截取每条评论中的前N个字符,多余的用“…”代替。

本来已经是很完美了,因为用了 convert_smilies()函数将表情符号转换后,大部分的表情都显示正确了。

但是仍有一部分表情符号没有转换,哪一部分呢?

评论字数超过15个字符(我在前面说过截取每条评论中的前N个字符,那个N就是15了),表情字符开始于第12或第13或第14或第15个。

比如我的标签符号是这种形式的  :(X):   (X为1到24的数字)

如果评论的第12或第13或第14或第15个字符开始为 :(X):  这种表情字符,那么就显示不了,因为他们被截断了。

效果看我下面的截图,第一条评论中的表情字符被截断,而最后一条则正常显示了。

这个问题的难点就在于,怎么能不让截断表情符号?

有朋友会解决的吗?

无觅相关文章插件,快速提升流量

分类: WordPress, 技术 标签: , 阅读:155  纯文字版
  1. 2010年6月15日12:34

    这个问题。。。。不晓得,呵呵

    [回复]

    自由人 回复:

    额,我这个问题好像还真是不那么容易解决,难道非得再写个函数什么的?

    [回复]

  2. 2010年6月15日12:46

    这个问题我也有,不过被我无视了,哈哈
    如果要解决的话就要用正则吧

    [回复]

    自由人 回复:

    额。。。看来确实不太容易啊

    [回复]

  3. 2010年6月15日12:49

    这个问题解决起来确实不容易啊~

    [回复]

    自由人 回复:

    莫非真得把这个问题放下

    [回复]

  4. 2010年6月15日13:08

    懒得管这个东西~~

    [回复]

    自由人 回复:

    哎。。。有时候完美好像不太容易实现哪

    [回复]

  5. 2010年6月15日13:24

    我都不在侧边显示评论这些了

    [回复]

    自由人 回复:

    我也去了很久一段了,不过最近又加上了,不然觉得博客太空了

    [回复]

  6. 2010年6月15日13:28

    没注意,忽视吧

    [回复]

    自由人 回复:

    大牛们都不会 看来真的要杯具了

    [回复]

  7. 2010年6月15日13:49

    技术盲飘过啊……

    [回复]

    自由人 回复:

    呵呵,多了解点就会拉

    [回复]

    silsnow 回复:

    唉,天生对技术不敏感……

    [回复]

    自由人 回复:

    只要能达到自己的要求就好了

    [回复]

  8. 2010年6月15日17:27

    大牛们都不行,我等小牛岂能行??

    [回复]

    自由人 回复:

    试试嘛~~ 说不定下个大牛就是你啦~

    [回复]

  9. 2010年6月15日18:54

    不去理它是最好的。呵呵

    如果表情:开始。:结束。

    作一下判断咯~~

    [回复]

    自由人 回复:

    哎。。。不理他了,其实出现这种情况的几率也不大,如果要做判断的话还得写函数什么的挺麻烦

    [回复]

    柳城 回复:

    就是说嘛。反正也没人留意那东西。

    [回复]

  10. 2010年6月15日20:11

    不让它输出表情不就成了

    [回复]

    自由人 回复:

    这个是评论的一部分哪~~

    [回复]

  11. 2010年6月15日20:54

    我还没有表情!!!

    [回复]

    自由人 回复:

    呵呵,这个可以有的

    [回复]

  12. 2010年6月15日21:56

    我是来灌水的
    PS:为什么你右侧的评论排行不显示数量?

    [回复]

    自由人 回复:

    这个我还真没发现,Firefox下面显示的,我找下解决方法去,谢谢提醒!

    [回复]

    自由人 回复:

    已经搞定啦~~ 呵呵,现在可以显示了

    [回复]

    飞晏 回复:

    哦 为了不影响灌水 再建议你邮件回复评论

    [回复]

  13. 2010年6月15日22:38

    还没空折腾wp

    [回复]

    自由人 回复:

    这个有空了可以折腾下的哦~~

    [回复]

  14. XL
    2010年6月16日18:18

    哎 你的表情不会动。

    [回复]

    自由人 回复:

    额。。。

    [回复]

  15. 2010年6月17日21:35

    果然是高手啊

    [回复]

  16. 2010年6月18日15:30

    把截取后的评论作个replace,就可以了。

    写一个正则表达式来实现。模型是“:(N)…”,替换为完整的“:(N):…”,需要写个pattern。

    注意,“:(N)…”还可能是“:(N…”、“:(…”、“:…”

    [回复]

    记忆盒子 回复:

    补充:Pattern=”:(.[^\.]*)…” 可匹配上述几个字符串

    [回复]

    自由人 回复:

    这个我也想过了,这个也只是解决问题里面的一部分,如果截取后的表情符号只有:( 或是: 就没办法替换了,因为不知道该匹配哪一个了.也就是说只要评论符号不缩减弄成一个字符就会有问题。

    [回复]

    记忆盒子 回复:

    嗯,我就知道你会这么说。这两种情况,就replace为空吧。只考虑带数字的情况就可以了。

    你也可以这样处理。
    那就是在截取之前就判断第12、13、14、15个字符是什么,如果是表情符号的话,你就把截取字符串延长。这样,就可以保留完整的表情字符了。这种方法甚至不需要动用正则表达式。

    [回复]

    自由人 回复:

    非常感谢你哈~~ 等有时间了好好鼓捣下,还有就是如果能有单个字符可以代表一个表情就好了,那样就不用考虑这些问题了

    [回复]

  17. 2010年6月19日21:28

    我沒理它, 反正新評論一來馬上擠掉了.

    [回复]

    自由人 回复:

    嗯,其实影响不大

    [回复]

  18. 2010年6月26日00:18

    免插件最新评论 这个我想知道是怎么实现的

    [回复]

    自由人 回复:

    有个代码的,需要?

    [回复]

    奥德雷的雷人事迹 回复:

    嗯,给我个吧

    [回复]

  19. 2010年7月19日22:57

    我表情符号搞了几天没搞上,气得我不弄了,还有一个就是评论邮件回复功能,TMD

    [回复]

    自由人 回复:

    嗯?表情我是无插件实现的,第二个我是用的wp thread comment那个插件实现的

    [回复]

    Afio 回复:

    都搞过,估计是我主机不支持 不过按理说 别人在我那的评论 就应该支持mail()函数啊 我晕

    [回复]