ホームページ  >  記事  >  php教程  >  PHP は Word から直接貼り付けられた書式なしの関数を削除します

PHP は Word から直接貼り付けられた書式なしの関数を削除します

WBOY
WBOYオリジナル
2016-06-13 11:56:53807ブラウズ

一般的な処理方法は 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)[^>]*>(.*?)#isu', '#<(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 ;
}


テスト結果:


コードをコピー

コードは次のとおりです:

$content = '

「Youban Outdoor Travel」 - 旅行を習慣に!

ますます忙しくなっているので、自分のために休暇を取りたいと思いませんか?仕事に集中している人は、最後に運動したときのことをまだ覚えていますか? Youban Outdoor Travel は、これまでとは異なる旅行体験を提供します。心を自由にすれば、どこにでも景色が見えます。

;

echo ClearHtml($content,'

');


/*
取得された結果:

ますます忙しくなっているので、自分のために休暇を取ってみませんか?仕事に集中している人は、最後に運動したときのことをまだ覚えていますか? Youban Outdoor Travel は、これまでとは異なる旅行体験を提供します。心を自由にすれば、どこにでも景色が見えます。


*/
?>


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。