php - 净化后在我的 html 中

标签 php javascript jquery ckeditor htmlpurifier

我有一个数据库,我正在重建表结构是废话,所以我将一些数据从一个表移植到另一个表。此数据似乎是从 MSO 产品复制粘贴的,因此在获取数据时,我使用 htmlpurifier 和 php 中的一些 str_replace 对其进行了清理。这是清理函数:

   function clean_html($html) {
    $config = HTMLPurifier_Config::createDefault();
    $config->set('AutoFormat','RemoveEmpty',true);
    $config->set('HTML','AllowedAttributes','href,src');
    $config->set('HTML','AllowedElements','p,em,strong,a,ul,li,ol,img');
    $purifier = new HTMLPurifier($config);

    $html = $purifier->purify($html);

    $html = str_replace(' ',' ',$html);
    $html = str_replace("\r",'',$html);
    $html = str_replace("\n",'',$html);
    $html = str_replace("\t",'',$html);
    $html = str_replace('  ',' ',$html);
    $html = str_replace('<p> </p>','',$html);
    $html = str_replace(chr(160),' ',$html);

    return trim($html);
   }

但是,当我将结果放入新表并将它们输出到 ckeditor 时,我得到了这三个字符。

然后我有一个 javascript 函数,它被调用以从 ckeditor 的内容中删除特殊字符。它也不清洁它

  function remove_special(str) {
    var rExps=[ /[\xC0-\xC2]/g, /[\xE0-\xE2]/g,
    /[\xC8-\xCA]/g, /[\xE8-\xEB]/g,
    /[\xCC-\xCE]/g, /[\xEC-\xEE]/g,
    /[\xD2-\xD4]/g, /[\xF2-\xF4]/g,
    /[\xD9-\xDB]/g, /[\xF9-\xFB]/g,
    /\xD1/,/\xF1/g,
    "/[\u00a0|\u1680|[\u2000-\u2009]|u200a|\u200b|\u2028|\u2029|\u202f|\u205f|\u3000|\xa0]/g", 
    /\u000b/g,'/[\u180e|\u000c]/g',
    /\u2013/g, /\u2014/g,
    /\xa9/g,/\xae/g,/\xb7/g,/\u2018/g,/\u2019/g,/\u201c/g,/\u201d/g,/\u2026/g];
    var repChar=['A','a','E','e','I','i','O','o','U','u','N','n',' ','\t','','-','--','(c)','(r)','*',"'","'",'"','"','...'];

    for(var i=0; i<rExps.length; i++) {
        str=str.replace(rExps[i],repChar[i]);
    }

      for (var x = 0; x < str.length; x++) {
    charcode = str.charCodeAt(x);
          if ((charcode < 32 || charcode > 126) && charcode !=10 && charcode != 13) {
              str = str.replace(str.charAt(x), "");
          }
      }
      return str;
  }

有谁知道我需要做什么才能摆脱它们。我认为它们可能是某种引用。

最佳答案

您的字符编码完全不正常。 â�� 对我来说是一个三字节的 UTF-8 编码字符。

一些你需要发现的东西

  • 旧表的编码是什么?
  • 新表的编码是什么?
  • 显示ckeditor的页面编码是什么?

看起来像HTMLPurifier's default is UTF-8所以您真的需要了解数据的编码!

关于php - 净化后在我的 html 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2515905/

相关文章:

php - 什么是 php 中的自动加载?

php - 清理货币字符串的快速方法

laravel - 如何在 Laravel 5 中正确使用可终止中间件?

php - 如何在没有数据库(PHP)的情况下存储密码?

javascript - 使用正则表达式替换 url 中的字符串

javascript - JavaScript 中的凯撒密码 - 为什么 'A' 在这里变成 '['?

javascript - ErrorAccessDenied 使用 Microsoft Graph 删除附件

jquery - 当 $.post utf-8 字符串时,Django 返回 "500 INTERNAL SERVER ERROR"

jquery - 如何使用 JQuery 从列表中获取所有 href 值?

javascript - 无法从提示中获取变量作为回调函数