Φ 首页 > > 一个函数解决邮件回复主题特殊字符问题
1 条评论

一个函数解决邮件回复主题特殊字符问题

Ω 发表评论 ♀ 2012年4月28日

囧啊囧

由于我的博客的标题里包含了特殊字符,就是英文下的单引号 ’,结果呢就会出现一个怪现象,就是评论邮件回复时,邮件发件人和标题会转义成html格式 ' 。

其实早就发现这个问题了,但一直没有去管。但现在想修复这个问题时,发现了个严重的问题:对于Copy代码之类,马马虎虎还凑合,但是真正到修改函数了,还是蛮有难度了,毕竟没有PHP基础嘛!

不多说,先贴出之前的邮件回复就是下面这个样子:

不懂PHP伤不起啊

由于俺是用了willin的邮件回复插件,查看了代码,原来是调用的 PHP 的 mail() 函数,于是放狗搜。

发现 mail() 函数的subject参数不能包含任何新行字符

坑爹啊,这新行字符是什么玩意?继续搜,始终找不到解决答案。

木办法,只能用俺的笨方法了,用 str_replace() 函数替换吧。

把get_option("blogname")替换为:

str_replace("'","’",get_option("blogname"))

发现这样治标不治本,把英文的单引号替换成中文的单引号,这样也行?

继续搜,发现只需把get_option("blogname")替换为:

html_entity_decode(get_option("blogname"), ENT_QUOTES)

原来根本不是mail()函数的问题,而是get_option("blogname")函数输出的html格式,只需把html实体格式化为字符格式就行了。

修改后效果:

不懂PHP伤不起啊

OK,搞定!

我怎么觉得还不如直接写成我的博客标题就行了,根本不用什么函数。

爱折腾的孩纸伤不起啊!

♂ 分类: ♂ Tags: , ,

"一个函数解决邮件回复主题特殊字符问题" 上有 1 条评论

  1. 感谢楼主分享,终于解决了,有强迫症的伤不起

发表评论

:?: :razz: :sad: :!: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: :smile: :evil: