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

GD Star Rating
loading...

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

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

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

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

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

问题如下

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

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

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

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

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

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

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

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

有朋友会解决的吗?

已有47条评论 发表评论

  1. Afio /

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

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

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

      GD Star Rating
      loading...
      1. Afio /

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

        GD Star Rating
        loading...
  2. 奥德雷的雷人事迹 /

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

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

      有个代码的,需要?

      GD Star Rating
      loading...
      1. 奥德雷的雷人事迹 /

        嗯,给我个吧

        GD Star Rating
        loading...
  3. willin /

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

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

      嗯,其实影响不大

      GD Star Rating
      loading...
  4. 记忆盒子 /

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

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

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

    GD Star Rating
    loading...
    1. 记忆盒子 /

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

      GD Star Rating
      loading...
    2. 自由人 / 本文作者

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

      GD Star Rating
      loading...
      1. 记忆盒子 /

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

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

        GD Star Rating
        loading...
        1. 自由人 / 本文作者

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

          GD Star Rating
          loading...
  5. 网络推广 /

    果然是高手啊 :(18):

    GD Star Rating
    loading...
  6. XL /

    :(16): 哎 你的表情不会动。

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

      :(8): 额。。。

      GD Star Rating
      loading...
  7. topchun /

    还没空折腾wp

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

      :(4): 这个有空了可以折腾下的哦~~

      GD Star Rating
      loading...
  8. 飞晏 /

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

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

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

      GD Star Rating
      loading...
    2. 自由人 / 本文作者

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

      GD Star Rating
      loading...
      1. 飞晏 /

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

        GD Star Rating
        loading...
  9. 博百优 /

    我还没有表情!!!

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

      呵呵,这个可以有的

      GD Star Rating
      loading...
  10. 阿修 /

    不让它输出表情不就成了

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

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

      GD Star Rating
      loading...
  11. 柳城 /

    不去理它是最好的。呵呵

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

    作一下判断咯~~

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

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

      GD Star Rating
      loading...
      1. 柳城 /

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

        GD Star Rating
        loading...
  12. 二十六公斤 /

    :(7): 大牛们都不行,我等小牛岂能行?? :(9):

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

      :(16): 试试嘛~~ 说不定下个大牛就是你啦~

      GD Star Rating
      loading...
  13. silsnow /

    技术盲飘过啊……

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

      呵呵,多了解点就会拉

      GD Star Rating
      loading...
      1. silsnow /

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

        GD Star Rating
        loading...
        1. 自由人 / 本文作者

          :(1): 只要能达到自己的要求就好了

          GD Star Rating
          loading...
  14. zwwooooo /

    没注意,忽视吧

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

      :(14): 大牛们都不会 看来真的要杯具了

      GD Star Rating
      loading...
  15. Dianso /

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

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

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

      GD Star Rating
      loading...
  16. 心情签名 /

    懒得管这个东西~~

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

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

      GD Star Rating
      loading...
  17. 集趣 /

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

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

      :(14): 莫非真得把这个问题放下

      GD Star Rating
      loading...
  18. 万戈 /

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

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

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

      GD Star Rating
      loading...
  19. 帅哥 /

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

    GD Star Rating
    loading...
    1. 自由人 / 本文作者

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

      GD Star Rating
      loading...

发表评论