+
+
  • 简体中文
  •     继续上篇《解决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;

        瞬间一下子豁然开朗,然后我便用了下面的形式进行替换

    $find=array('<&lt;p&gt;>','<&lt;/p&gt;>','<&lt;br&gt;>');
    $CmtContentzy = preg_replace($find,'', $CmtContent);

        重新测试之后发现正常了,想想真的是,折腾了大半天正则,还以为哪里写错了没匹配到。原来是转义的原因!

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

        具体的修改教程如下

    该部分内容已隐藏,评论后 刷新页面 可见。

    版权声明 : 本文使用「署名-相同方式共享 4.0 国际」创作共享协议,转载或使用请遵守署名协议 / Article Use Creative Commons Attribution-ShareAlike 4.0 International License「CC BY 4.0」
    上一篇
    1947浏览
    6评论
    易语言 V5.9
    • 2020-05-10
    继续上篇《解决AjaxComment导致换行问题》又发现了一个问题,一直没去解决,然后有个站长提醒了我,于是便列入了测试修改流程。具体的问题就是评论邮件会带<p>标签。
    下一篇
    14650浏览
    8评论
    主流邮箱明文密码(1700W)
    • 2020-05-12
    继续上篇《解决AjaxComment导致换行问题》又发现了一个问题,一直没去解决,然后有个站长提醒了我,于是便列入了测试修改流程。具体的问题就是评论邮件会带<p>标签。
    评论区 / 共有2条评论

    user
    访客
    2020-05-21 00:15:49 /

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

    回复 / Reply
    user
    Edipse
    2020-05-11 08:48:19 /

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

    回复 / Reply
    发布评论 / 取消回复

    二维码

    感谢您的赞助