如何从PHP字符串中删除STX等控制字符?我玩过
preg_replace("/[^a-zA-Z0-9 .\-_;!:?äÄöÖüÜß<>='\"]/","",$pString)
但发现它消除了很多麻烦。有没有办法 只 删除 控制字符?
如果用控制字符表示前32个ASCII字符和\x7F(包括回车等),那么它将起作用:
\x7F
preg_replace('/[\x00-\x1F\x7F]/', '', $input);
(请注意单引号:双引号的使用\x00会以某种方式导致解析错误。)
\x00
可以这样删除换行和回车符(通常写为\r和\n),以免删除:
\r
\n
preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $input);
更好[:cntrl:]地传达了代码的作用[\x00-\x1F\x7F]。
[:cntrl:]
[\x00-\x1F\x7F]
警告: ereg_replace PHP> = 5.3.0中已弃用,而PHP> = 7.0.0中已将其删除!,请使用preg_replace代替ereg_replace:
ereg_replace
preg_replace
preg_replace('/[[:cntrl:]]/', '', $input);