If you mean by control characters the first 32 ascii characters and x7F
(that includes the carriage return, etc!), then this will work:
preg_replace('/[x00-x1Fx7F]/', '', $input);
(Note the single quotes: with double quotes the use of x00
causes a parse error, somehow.)
The line feed and carriage return (often written
and
) may be saved from removal like so:
preg_replace('/[x00-x09x0Bx0Cx0E-x1Fx7F]/', '', $input);
I must say that I think Bobby's answer is better, in the sense that [:cntrl:]
better conveys what the code does than [x00-x1Fx7F]
.
WARNING: ereg_replace
is deprecated in PHP >= 5.3.0 and removed in PHP >= 7.0.0!, please use preg_replace
instead of ereg_replace
:
preg_replace('/[[:cntrl:]]/', '', $input);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…