HTMLタグ、HTMLスペース文字、および次のような文字からテキストを消去したい< > [ ] / \ * ,
私は $str = preg_replace("/&#?[a-zA-Z0-9]+;/i", "", $str);
それをhtmlの特殊文字でうまく機能させましたが、一部の文字は次のように削除されません: ( /*/*]]>*/
)
これらの文字を削除するにはどうすればよいですか?
HTMLタグ、HTMLスペース文字、および次のような文字からテキストを消去したい< > [ ] / \ * ,
私は $str = preg_replace("/&#?[a-zA-Z0-9]+;/i", "", $str);
それをhtmlの特殊文字でうまく機能させましたが、一部の文字は次のように削除されません: ( /*/*]]>*/
)
これらの文字を削除するにはどうすればよいですか?
実際に php を使用している場合は、次のように使用できます。
$str = htmlspecialchars($str);
すべての HTML 文字はエスケープされます (これは単にそれらを取り除くよりも優れている可能性があります)。これらの文字を本当にフィルタリングしたい場合は、chars リストでこれらの文字をエスケープする必要があります。
$str = preg_replace("/[\&#\?\]\[\/\\\<\>\*\:\(\);]*/i","",$str);
「/[]*/i」が 1 つだけあることに注意してください。これらの文字が必要なため、a-zA-Z0-9 を削除しました。文字列に入力する必要のある文字のみを分類することもできます (アクセント記号で問題が発生します)。 á é ü のように使用する場合は、受け入れられるすべての文字を指定する必要があります):
$str = preg_replace("/[^a-zA-Z0-9áÁéÉíÍãÃüÜõÕñÑ\.\+\-\_\%\$\@\!\=;]*/","",$str);
また、たとえば間隔の場合を除き、エスケープ文字が多すぎることはないことに注意してください (\a-\z は問題なく、\a-\z は a、または -、または z に一致します)。
お役に立てば幸いです。:)
html タグの正規表現は次のとおりです。
/\<(.*)?\>/
したがって、次のようなものを使用します。
// The regular expression to remove HTML tags
$htmltagsregex = '/\<(.*)?\>/';
// what shit will substitute it
$nothing = '';
// the string I want to apply it to
$string = 'this is a string with <b>HTML tags</b> that I want to <strong>remove</strong>';
// DO IT
$result = preg_replace ($htmltagsregex,nothing,$string);
そしてそれは戻ってくる
これは、削除したい HTML タグを含む文字列です
それで全部です