0

HTMLを含むユーザー送信コンテンツを受け入れる場合、(PHPを使用して)自動抜粋を生成し、HTMLを有効に保つにはどうすればよいですか?

たとえば、最初の200文字を選択すると、終了タグを見逃す可能性があり、タグのカウントはそれほど簡単ではありません。

私はいくつかのライブラリを見たことがありますが、それらは多くのことを扱っているので巨大です。自動抜粋を生成するためだけに必要です。

4

1 に答える 1

1

有効性を確保したい場合は、タグをカウントする必要があると思います。

strip_tags が受け入れるタグを制限すると、それをチェックするのが簡単になります。

最初に、指定された位置 (200) の文字がタグの一部であるかどうかを確認する必要があります。これを行う最も簡単な方法は、タグ クローザー (>) が表示される前に、タグ オープナー (<) が位置の左側に表示されるかどうかを確認することだと思います。

タグ内にいる場合は、それが終了タグかどうかを判断する必要があります。その場合、次の ">" の出現まで制限を拡張する必要があります。そうでない場合は、タグオープナーの最後の出現まで制限を減らします。

唯一の問題は、文字列の末尾に終了タグがないかどうかを確認することです。許可されたタグ (開始タグと終了タグ) を数えることで、最後に追加する必要がある終了タグとその数についてのヒントが得られます。

そのため、これらの「修正」タグの順序を決定するという問題が残ります。少しのロジックで、あなたも同様にできるはずです。

素敵なものを持っています

ステファン

于 2012-05-01T09:44:19.317 に答える