一般的な処理方法は 2 つあります。 1. エディターの JS を介して直接削除します。 2. バックグラウンドで送信した後、プログラムを直接使用して無効なタグを削除します。以下に PHP による処理方法を紹介します。成功率は 100% ではない可能性があります。このプログラムはPHP公式サイトでも見かけたので、ここにも貼り付けておきます。
コードをコピー コードは次のとおりです。
function ClearHtml($content,$allowtags='') {
mb_regex_encoding('UTF-8');
//MS 特殊文字を最初に置き換えます
$search = array('/'/u', '/'/u', '/"/u ', ' /"/u', '/—/u');
$replace = array(''', ''', '"', '"', '-');
$ content = preg_replace ($search, $replace, $content);
//_all_ HTML エンティティがプレーンな ASCII エンティティに変換されていることを確認します。
//一部の MS ヘッダーでは、一部の HTML エンティティがエンコードされており、
$content = html_entity_decode($content, ENT_QUOTES, 'UTF-8');
//これらは HTML コメントに埋め込まれているため、最初に削除してみます。 🎜>/ /strip_tags が HTML コメントを削除しないようにします (MS Word で導入された組み合わせ)
if(mb_stripos($content, '/*') !== FALSE){
$content = mb_eregi_replace('#/*. *?* /#s', '', $content, 'm');
}
//strip_tags でキャッチされる可能性のある算術式にスペースを導入して、// '<1' は '< 1' になります (注: アプリケーション固有です)
$content = preg_replace(array('/<([0-9] )/'), array('< ; $1' ), $content);
$content =strip_tags($content, $allowtags);
// 行頭と行末、または 2 つ以上のスペースがある場所から余分な空白を削除します。 、それを 1 つに変換します
$content = preg_replace(array('/^ss /', '/ss $/', '/ss /u'), array('', '', ' '), $ content);
//インライン CSS を取り除き、スタイル タグを簡素化します
$search = array('#<(strong|b)[^>]*>(.*?)( Strong|b )>#isu', '#<(em|i)[^>]*>(.*?)(em|i)>#isu', '#< u[^ >]*>(.*?)#isu');
$replace = array('$2', ' $2< /i>', '$1');
$content = preg_replace($search, $replace, $content); ? 新しい MS Word エクスポートでは、'if gte mso 9' などの形式の条件文が取得されますが、
//HTML コメントの 1 つに含まれる内容によって、strip_tags が次の内容を含む HTML コメントを削除できないようです。
//一部の MS スタイル定義 - この最後のビットは残ったコメントを削除します */
$num_matches = preg_match_all("//isu', '', $content);
}
return $content ;
}
テスト結果:
php $content = ' 「Youban Outdoor Travel」 - 旅行を習慣に!
');
/*
取得された結果:
ますます忙しくなっているので、自分のために休暇を取ってみませんか?仕事に集中している人は、最後に運動したときのことをまだ覚えていますか? Youban Outdoor Travel は、これまでとは異なる旅行体験を提供します。心を自由にすれば、どこにでも景色が見えます。