类别:FRONTEND / 前端 / 日期:2020-05-11 / 浏览:2680 / 评论:2
继续上篇《解决AjaxComment导致换行问题》又发现了一个问题,一直没去解决,然后有个站长提醒了我,于是便列入了测试修改流程。具体的问题就是评论邮件会带<p>标签。
这个邮件插件提交的原理就是获取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> <p>111111111111111111111111111111111111111111111111111111111111111111111111111111</p>
共有 2 条评论
牛批,优秀,666(看隐藏内容)
牛批,优秀,666(看隐藏内容)
发表评论 / 取消回复