Eliminando caracteres de controle de strings PHP
Ao trabalhar com strings PHP, às vezes é necessário remover caracteres de controle como STX. Ao tentar usar preg_replace, você pode ter descoberto que ele removeu caracteres excessivos além dos caracteres de controle. Nosso foco aqui é mostrar como remover seletivamente apenas caracteres de controle.
Para conseguir isso, você pode utilizar o seguinte código:
preg_replace('/[\x00-\x1F\x7F]/', '', $input);
Este padrão corresponde e substitui caracteres do intervalo de valores hexadecimais \x00 a \x1F, bem como o valor \x7F. Esse intervalo abrange os primeiros 32 caracteres ASCII, bem como o caractere DEL.
Se quiser preservar certos caracteres de controle, como avanço de linha e retorno de carro, você pode ajustar o padrão de acordo:
preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $input);
Ao usar este padrão, você pode remover todos os caracteres de controle exceto avanço de linha (\n) e retorno de carro (\r).
É importante observar que ereg_replace está obsoleto no PHP >= 5.3.0 e removido no PHP >= 7.0.0. Para garantir a compatibilidade, use preg_replace:
preg_replace('/[[:cntrl:]]/', '', $input);
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3