我想从 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 字符都将被转义(这可能比仅仅剥离它们更好)。如果你真的只想过滤这些字符,你需要做的是在字符列表中转义这些字符:
$str = preg_replace("/[\&#\?\]\[\/\\\<\>\*\:\(\);]*/i","",$str);
注意只有一个“/[]*/i”,我删除了 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 标记的字符串
就这样