用空格替换所有不可打印的UTF-8字符

时间:2013-08-28 12:56:18

标签: php regex preg-replace

我需要清理一些用户输入,我需要删除所有字符可能会导致诸如Null Byte或无用字符(例如\ n或\ t)之类的问题,因为输入是字符串或html代码。 此时我正在使用它来删除标签,断行等:

preg_replace('/\s+/','',$_POST['id'])

但是还不够,我发现了这个:

preg_replace( '/[^[:print:]]/',' ',$_POST['val'])

但我不明白它是否也删除了不应删除的字符,例如德语或阿拉伯语字符或标点或符号

1 个答案:

答案 0 :(得分:0)

根据PHP regex character classes [:print:]包含" 打印字符,包括空格"。

这意味着" 可见字符和空格(即控制字符以外的任何内容等)" (见http://www.regular-expressions.info/posixbrackets.html

  • ASCII字符:[\x20-\x7E]
  • Unicode:\P{C}