¿Cómo puedo eliminar el carácter ETX (0x03) del final de una cadena? Me gustaría una función, de lo contrario puedo escribir una expresión regular, todo lo que quiero saber es cómo hacer coincidir el carácter ETX en una expresión regular. trim()
no funciona.¿Cómo eliminar el carácter ETX del final de una cadena? (Regex o PHP)
Respuesta
Para completar la respuesta de Carlos, que tenía un caso en el que el El carácter ETX no estaba al final de la línea, así que tuve que usar el siguiente código:
$string = preg_replace('/\x03/', '', $string);
Simplemente elimine el signo $.
Ha intentado función rtrim
En un rtrim guess ($ var, "\ c"); o preg_replace ("/ \ c + \ $ /", '', $ var);
El ETX es un personaje de control, lo que significa que debemos esforzarnos un poco para que exista.
desde el modo interactivo PHP:
php > $borked = "Hello, have an ETX:" . chr(3);
php > print_r($borked);
Hello, have an ETX:
php > var_export($borked);
'Hello, have an ETX:'
php > echo urlencode($borked);
Hello%2C+have+an+ETX%3A%03
php > var_dump(preg_match('/' . chr(3) . '/', $borked));
int(1)
php > var_dump(preg_match('/' . chr(3) . '$/', $borked));
int(1)
php > echo urlencode(preg_replace('/' . chr(3) . '$/', '', $borked));
Hello%2C+have+an+ETX%3A
En otras palabras, se puede inyectar, básicamente, sólo el carácter en la cadena de expresiones regulares. Ahora bien, este podría contraproducente. Esta técnica puede ser contraproducente en función de conjuntos de caracteres y otras cosas horribles.
Además de chr(3)
, también puede probar urldecode('%03')
para producir el personaje. También puede utilizar una sintaxis especial de escape, tal como aparece en la PCRE syntax pages: /\x03$/
He aquí una función para la que, utilizando ese último método:
function strip_etx_at_end_of_string($string) {
return preg_replace('/\x03$/', '', $string);
}
- 1. Eliminar el carácter de nueva línea de una cadena mediante php regex
- 2. Eliminar o ignorar el carácter del lector
- 3. regex para obtener el número del final de una cadena
- 4. PHP - Eliminar el último carácter del archivo
- 5. Eliminar espacios del principio y el final de una cadena
- 6. Eliminar el último carácter de una cadena
- 7. ¿cómo elimino una coma del final de una cadena?
- 8. PHP Regex Cualquier carácter
- 9. Regex para eliminar un carácter repetido específico
- 10. Eliminar el primer carácter de una cadena
- 11. Eliminar traza final desde cadena PHP
- 12. mysql: cómo puedo eliminar el carácter al inicio o al final del campo
- 13. Regex del personaje hasta el final de la cadena
- 14. Eliminar carácter específico de una cadena según el valor hexadecimal
- 15. ¿Cómo podría eliminar el último carácter de una cadena si es una puntuación, en ruby?
- 16. Eliminar un solo carácter de una cadena?
- 17. ¿Cómo puedo eliminar el carácter NULL de la cadena
- 18. PHP: elimina el espacio extra de una cadena usando regex
- 19. Eliminar un carácter de una cadena
- 20. Cómo eliminar un carácter de una cadena usando Python?
- 21. php regex o | operador
- 22. ¿Cómo eliminar todos los espacios en blanco desde el inicio o el final de una cadena?
- 23. Regex para que coincida con el espacio en blanco o el final de la cadena
- 24. ¿Cómo eliminar un sufijo del final de la cadena?
- 25. powershell: eliminar el texto del final de la cadena
- 26. ¿Cómo eliminar una subcadena de una cadena usando PHP?
- 27. php: eliminar corchetes/contenidos de una cadena?
- 28. ¿Eliminar el último carácter de una cadena en T-SQL?
- 29. Eliminar el último carácter de una cadena (VB.NET 2008)
- 30. Obtener y eliminar el primer carácter de una cadena
trim no funcionó, ¿por qué esto –
@ClickUpvote Why not? ¿Has probado 'rtrim ($ str," \ x03 ")'? – Karolis