我想从html标签,html空格字符和< > [ ] / \ * ,
我使用了$str = preg_replace("/&#?[a-zA-Z0-9]+;/i", "", $str);
它适用于html特殊字符,但有些字符不会删除像:
(/*/*]]>*/
)
如何删除这些字符?
答案 0 :(得分:1)
如果你真的使用php,你可以使用:
$str = htmlspecialchars($str);
所有HTML字符都将被转义(这可能比剥离它们更好)。如果您真的只想过滤这些字符,那么您需要做的就是在字符列表中转义这些字符:
$str = preg_replace("/[\&#\?\]\[\/\\\<\>\*\:\(\);]*/i","",$str);
注意只有一个“/ [] * / i”,我删除了a-zA-Z0-9,因为你应该想要这些字符。你也可以只分类所需的字符来输入你的字符串(会给你如果使用áüü等强调问题,则必须指定每个接受的字符:
$str = preg_replace("/[^a-zA-Z0-9áÁéÉíÍãÃüÜõÕñÑ\.\+\-\_\%\$\@\!\=;]*/","",$str);
请注意,转义字符永远不会太多,除非例如间隔(\ a- \ z会很好,\ a- \ z匹配a,或 - 或z)。
我希望它有所帮助。 :)
答案 1 :(得分:0)
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标记的字符串
这就是全部