一尘不染

从PHP字符串中删除控制字符

php

如何从PHP字符串中删除STX等控制字符?我玩过

preg_replace("/[^a-zA-Z0-9 .\-_;!:?äÄöÖüÜß<>='\"]/","",$pString)

但发现它消除了很多麻烦。有没有办法 删除 控制字符?


阅读 400

收藏
2020-05-26

共1个答案

一尘不染

如果用控制字符表示前32个ASCII字符和\x7F(包括回车等),那么它将起作用:

preg_replace('/[\x00-\x1F\x7F]/', '', $input);

(请注意单引号:双引号的使用\x00会以某种方式导致解析错误。)

可以这样删除换行和回车符(通常写为\r\n),以免删除:

preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $input);

更好[:cntrl:]地传达了代码的作用[\x00-\x1F\x7F]

警告: ereg_replace PHP> = 5.3.0中已弃用,而PHP> =
7.0.0中已将其删除!,请使用preg_replace代替ereg_replace

preg_replace('/[[:cntrl:]]/', '', $input);
2020-05-26