"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo eliminar selectivamente caracteres de control de cadenas PHP?

¿Cómo eliminar selectivamente caracteres de control de cadenas PHP?

Publicado el 2024-11-03
Navegar:707

How to Selectively Remove Control Characters from PHP Strings?

Eliminación de caracteres de control de cadenas PHP

Cuando se trabaja con cadenas PHP, a veces es necesario eliminar caracteres de control como STX. Al intentar utilizar preg_replace, es posible que haya descubierto que eliminaba un exceso de caracteres fuera de control. Nuestro objetivo aquí es mostrarle cómo eliminar selectivamente solo caracteres de control.

Para lograr esto, puede utilizar el siguiente código:

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

Este patrón coincide y reemplaza caracteres del rango de valores hexadecimales \x00 a \x1F, así como el valor \x7F. Este rango abarca los primeros 32 caracteres ASCII, así como el carácter DEL.

Si desea conservar ciertos caracteres de control, como avance de línea y retorno de carro, puede ajustar el patrón en consecuencia:

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

Al usar este patrón, puede eliminar todos los caracteres de control excepto avance de línea (\n) y retorno de carro (\r).

Es importante tener en cuenta que ereg_replace está obsoleto en PHP >= 5.3.0 y eliminado en PHP >= 7.0.0. Para garantizar la compatibilidad, utilice preg_replace en su lugar:

preg_replace('/[[:cntrl:]]/', '', $input);
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3