$ reply = "blah blah blah>< blah blah blah"; (> <は、韓国で人気の顔文字である)PHPを使用しているときに "<"の後の文字列strip_tags function
しかし、私は$応答ですべてのHTMLおよびPHPタグを取り除くために、「strip_tags」を使用する場合、「<」の後に、すべての文字が削除されます。
私はstrip_tagsが混在していると思います。
この問題を解決するソリューションはありますか?
$ reply = "blah blah blah>< blah blah blah"; (> <は、韓国で人気の顔文字である)PHPを使用しているときに "<"の後の文字列strip_tags function
しかし、私は$応答ですべてのHTMLおよびPHPタグを取り除くために、「strip_tags」を使用する場合、「<」の後に、すべての文字が削除されます。
私はstrip_tagsが混在していると思います。
この問題を解決するソリューションはありますか?
strip_tags()
を呼び出すと、文字列をHTMLとして扱います。したがって、strip_tags()
を使用する前に、これらのエンティティを<
および>
としてエンコードする必要があります。そうでない場合は、HTMLタグの開始および終了として扱われます。
エンティティをエンコードする必要があります。 strip_tags()
を使用すると、安全になります。
興味深い。私個人的に許容される部品をエンティティエンコードするでしょう、そして、(ストリップタグやにhtmlentitiesを実行します)その後...もちろん
<?php
// Initial user-input
$reply = "blah blah blah >< blah blah blah";
// Allow the emoticon you mentioned
$reply = str_replace('><', '><', $reply);
// Then strip tags
$reply = strip_tags($reply);
、これはあなただけ($応答)をhtmlentites場合は、すべての議論の余地がある、としましょうあなたが望むならば、ブラケットを入れてください。
's/htmlentities/htmlspecialchars /' - UTF8の時代には、ウムラウトのようなものをhtmlエンティティとしてエンコードする正当な理由はありません。 – ThiefMaster
良い点。私はいつもhtmlentities($ string、ENT_COMPAT、 'UTF-8')を使用していますが、それは他の人がi18nのためにしていることが主な理由です。 htmlspecialchars()を使用する方が良いでしょうか? – landons
@landons:スタック全体がUTF-8を処理できるなら(ThiefMasterによると、これはほぼ2012年です)、 'htmlentities'はちょっと膨らんでいます。さらに、HTMLを読むことができなくなります。 – Jon
いいえ、strip_tagsの使用を破棄しない限り、 – ajreal
ohを参照してください。そうすれば、strip_tagsではなくstr_replacceを使用する必要があります。ありがとう! –
@MintakSon:おそらく、あなたは 'htmlspecialchars'を使うべきでしょう。 – Jon