类别:FRONTEND / 前端 / 日期:2020-05-11 / 浏览:2712 / 评论:2

    继续上篇《解决AjaxComment导致换行问题》又发现了一个问题,一直没去解决,然后有个站长提醒了我,于是便列入了测试修改流程。具体的问题就是评论邮件会带<p>标签。

解决zblog评论邮件带标签的问题  p br zblog ajaxcomment php 正则 转义 第1张

    这个邮件插件提交的原理就是获取AjaxComment.ID内容然后直接POST,这里不考虑修改函数模板,怕影响到全局调用。那就只能从插件入手,需要修改的文件模板如下

\zb_users\plugin\XF_CommentsNotice\include.php

    期间我尝试了四种替换方法全部无效,正则也试过了好几种,大概如下

#正则替换公式 (全部不适用)
'<p>','</p>'
'/[\x{3C}]p[\x{3E}]/','/[\x{3C}][\x{2F}]p[\x{3E}]/'
'#[\x{3C}]p[\x{3C}]#u','#[\x{3C}][\x{2F}]p[\x{3C}]#u'

#正则替换函数
//第一种
$replace=array('','','','','');
$find=array('<p>','</p>','<br>','<span>','</span>');
$CmtContentzy=str_replace($find,$replace,$CmtContent);
//第二种
$CmtContentzxy=nl2br($CmtContent);
//第三种
$find = array("<p>" => " ", "</p>" => " ", "</span>" => " ", "<span>" => " ", "<br>" => " ");
$CmtContentzy = strtr($CmtContent,$find);
//第四种
$find=array('<p>','</p>','<br>','<span>','</span>');
$CmtContentzy = preg_replace($find,'', $CmtContent);

    但是奇怪的是,这四种方法我都通过测试页面里的var_dump($CmtContentzy);成功打印!但是一到了插件这里就直接替换不了,懵了两个多小时,最终,我突发奇想,不如看看email的源代码吧,果然...虽然文本代码明面上是以转义过后的<p>标签来显示的,但是如果你尝试进行编辑的话,他就会显示他原本的格式..

<p>111111111111111111111111111111111111111111111111111111111111111111111111111111</p>
&lt;p&gt;111111111111111111111111111111111111111111111111111111111111111111111111111111&lt;/p&gt;

 可能感兴趣的文章

伤心叹戈

评论区

共有 2 条评论

user 访客 / 2020-05-21 00:15:49 / Windows 7 x64 / QQBrowser 10.5.4043.400 / 回复

牛批,优秀,666(看隐藏内容emotion

user Edipse / 2020-05-11 08:48:19 / Windows 7 x64 / UC Browser 6.2.4098.3 / 回复

牛批,优秀,666(看隐藏内容emotion

发表评论 / 取消回复

必填

选填

选填

◎欢迎讨论,请在这里发表您的看法及观点。