$str =
preg_replace('#([\x00-\x1F])#e', '"\x" . sprintf("%02x", ord("\1"))', $str);
Répondre
Il remplace chaque occurrence d'un caractère avec une valeur ordinale comprise entre 0 et 31 (principalement les caractères de contrôle et l'espacement, à l'exception du caractère espace réel) avec sa valeur numérique. Le e à la fin de la regex signifie «évaluer le modèle comme s'il s'agissait de code PHP», et permet la concaténation de chaînes et l'utilisation de sprintf dans preg_replace. La regex est délimitée par # au lieu de la plus courante /, sans raison dans ce cas (c'est généralement fait si la chaîne regex contient /, pour éviter de les échapper).
Par exemple:
<?php
$str = "\t 22 \n ducks";
$str = preg_replace('#([\x00-\x1F])#e', '"\x" . sprintf("%02x", ord("\1"))', $str);
echo $str;
?>
Sorties:
\x09 22 \x0a ducks
Retirez la e
du modèle, et vous obtenez ceci:
"\x" . sprintf("%02x", ord(" ")) 22 "\x" . sprintf("%02x", ord(" ")) ducks
au moins ici.
Mise à jour:
Je l'ai regardé de plus près et il semble que ce soit la conversion de tous ascii caractères dans la plage 1-31 à leur équivalent hexagonal avec un préfixe \x
.
Ma conjecture de réaction intestinale d'origine que j'ai décidé est incorrect:
On dirait qu'il est urlencodage. J'utiliserais probablement la fonction construite dans php urlencode à la place.
de 0 à 31, pas 1. –
- 1. Que fait @ dans ce php?
- 2. Que fait cette fonction?
- 3. C# Regex. Cette regex ne fait pas tout le travail
- 4. Que fait cette expression régulière?
- 5. que fait cette macro C++?
- 6. Qu'est-ce que j'ai fait de mal ici? [Javascript Regex]
- 7. Que fait ce javascript
- 8. Que fait cette ligne de code?
- 9. que fait cette instruction sql? (Mysql)
- 10. Que fait cette déclaration SQL Oracle?
- 11. PHP - Code de fait presque ce que je veux à
- 12. Que fait ce code Javascript?
- 13. Que fait ce code javascript?
- 14. Que fait ce code? (2)
- 15. Que fait === faire en PHP
- 16. PHP regex: qu'est ce que "class at offset 0"?
- 17. Regex - Y at-il quelque chose que j'ai mal fait?
- 18. Est-ce que PartialView fait ce que je pense qu'il devrait (mais ne fait pas)?
- 19. Que fait le mot-clé PHP 'var'?
- 20. Que fait ce morceau de code C++?
- 21. Que fait cette fonction en Python impliquant urllib2 et BeautifulSoup?
- 22. Comment former cette Regex
- 23. S'il vous plaît expliquer ce que ce code jquery fait
- 24. Est-ce que mysqldump --password fait vraiment ce qu'il dit?
- 25. Pourquoi cette regex PHP me donne-t-elle une erreur?
- 26. Qu'est-ce que cette erreur SQL signifie
- 27. Est-ce que cette classe est threadsafe?
- 28. que signifie cette sortie?
- 29. Qu'est-ce que cela fait? tasklist/m "mscor *"
- 30. La méthode d'enregistrement Authlogic. Qu'est-ce que cela fait
Attention: le titre contient un anglais cassé :) Veuillez corriger. –