在PHP中从数据库中删除TinyMCE格式

时间:2012-09-18 18:09:35

标签: php string tinymce

我已经开始搜索它了,其中大部分是关于阻止TinyMCE粘贴Word样式的JavaScript样式。

我的问题是数据已经在数据库(MySQL)上,以及用户通过TinyMCE粘贴MS Words文本所做的所有格式化。

有没有办法删除所有格式并仅使用 PHP 保留文本?

一些示例文字:

&lt;!--  /* Font Definitions */  @font-face     {font-family:"Cambria Math";    panose-1:2 4 5 3 5 4 6 3 2 4;   mso-font-charset:1;     mso-generic-font-family:roman;  mso-font-format:other;  mso-font-pitch:variable;    mso-font-signature:0 0 0 0 0 0;} @font-face     {font-family:Calibri;   panose-1:2 15 5 2 2 2 4 3 2 4;  mso-font-charset:0;     mso-generic-font-family:swiss;  mso-font-pitch:variable;    mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal    {mso-style-unhide:no;   mso-style-qformat:yes;  mso-style-parent:"";    margin-top:0in;     margin-right:0in;   margin-bottom:10.0pt;   margin-left:0in;    line-height:115%;   mso-pagination:widow-orphan;    font-size:11.0pt;   font-family:"Calibri","sans-serif";     mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;   mso-fareast-font-family:Calibri;    mso-fareast-theme-font:minor-latin;     mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;   mso-bidi-font-family:"Times New Roman";     mso-bidi-theme-font:minor-bidi;     mso-fareast-language:EN-US;} .MsoChpDefault     {mso-style-type:export-only;    mso-default-props:yes;  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;   mso-fareast-font-family:Calibri;    mso-fareast-theme-font:minor-latin;     mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;   mso-bidi-font-family:"Times New Roman";     mso-bidi-theme-font:minor-bidi;     mso-fareast-language:EN-US;} .MsoPapDefault     {mso-style-type:export-only;    margin-bottom:10.0pt;   line-height:115%;} @page Section1   {size:8.5in 11.0in;     margin:1.0in 1.0in 1.0in 1.0in;     mso-header-margin:.5in;     mso-footer-margin:.5in;     mso-paper-source:0;} div.Section1   {page:Section1;} --&gt;   Blah blah blah blah blah &nbsp;    </p>

注意:作为html实体存储在数据库中的HTML标记(例如,字符<存储为&lt;

1 个答案:

答案 0 :(得分:1)

您要做的是将HTML转换为纯文本。因为这基本上是你从TinyMCE中获得的,以及你想要插入到数据库中的内容。

如上所述,简单的方法是在 htmlspecialchars_decode 函数上使用 strip_tags 。然而,它将删除一些可能重要的信息,例如HR元素。您更有可能使用的是html2text,它非常容易使用一些额外的功能,使转换更准确。

希望它有所帮助!