1

これは私にとって奇妙な問題です。英語で Web サイトを使用している場合、html_entity_decodeは正常に機能しますが、言語を変更すると機能が動作しなくなり、HTML タグが表示されます。

trim(htmlentities($this->input->post('page_srb')))DBに挿入してページを表示するために使用し<?php echo html_entity_decode($page->page) ?>ています。何が問題だと思われますか?

これは、私が英語を使用している場合のページのサンプルです (現在、同じテキストを使用しています)。 ここに画像の説明を入力

これは、セルビア語に変更したときのページの同じサンプルです。

ここに画像の説明を入力

4

1 に答える 1

2

ビューとストレージ機能を混在させないでください。これは悪い習慣であり、私が何年もかけて開発機関の同僚に強制し​​てきたことです。

HTML を正しい照合 (utf-8?) でデータベースに保存し、ブラウザーがレンダリングする有効な HTML を出力したくない場合はいつでも html_entities_encode を使用します (つまり、デフォルトでは、データベースから出力されるものはすべてエスケープ解除されます)。 /ブラウザがレンダリングするエンコードされていない)。

これにより、明確な分離とガイドラインが可能になります。古典的な例は、「誰かがあなたのテキストを DB で直接編集したらどうなるか?」です。そんなことは決して起こらないと言うかもしれませんが、ある時点でそうなるかもしれませんし、エンコードされていない別のフォームを介して誰かがそのテーブルにデータを挿入できるかもしれません。データ。

いくつかのプログラミング ルールを定義し、それに従います。データを挿入する場合はストアの保護に重点を置き、出力する場合はクライアントの保護に重点を置きます。一貫性は長期的には報われます。

于 2013-09-10T10:35:50.637 に答える