Ce n' \\x80-\\xFF?
Dans le processus de recherche de solutions pour aider à nettoyer une partie de la sortie, je suis tombé sur le code qui effectue les opérations suivantes.
preg_replace('|[^a-z0-9-~+_.?#=!&;,/:%@$\|*\'()\\x80-\\xff]|i', '', $some_url)
Maintenant, je pense que c'est en fait, d'essayer d'enlever quoi que ce soit d'autres que ceux ci-dessus mentionnés caractères. Mais ne pas \\x80-\\xff
se référer à une certaine forme de non-caractères ascii imprimables ? Si oui, pourquoi le code éventuellement être en essayant de ne PAS les supprimer ?
Toutes les indications/pointeurs/aide serait appréciée. Merci.
OriginalL'auteur Grateful | 2014-09-23
Vous devez vous connecter pour publier un commentaire.
D'accord, toutes les réponses jusqu'à présent me conduire dans la bonne direction et m'a permis de trouver ce qui suit dans le la documentation.
Donc, en résumé :-
i) '\x' permet hexadécimale de la séquence d'échappement, après qui, jusqu'à deux chiffres hexadécimaux sont lus
ii) '\xhh' les deux 'hh' les lettres peuvent être en majuscules ou en minuscules
iii) '\xhh' spécifie un code-point dans la plage de 0-FF
iv) '\x80-\xFF " se réfère à un ensemble de caractères en dehors de l'ASCII
OriginalL'auteur Grateful
x80
-xFF
sont des caractères non-ASCII plages. Ils sont toujours imprimable, à la fois en Latin-1, ou encoder plus élevé de points de code UTF-8.À l'aide de
\\x80
sur\x80
est un peu plus correct. Les séquences d'échappement dans les chaînes. Dans la seule cité de cordes aussi, mais c'est effectivement hors de propos.Dans les chaînes entre guillemets doubles toutefois, en utilisant juste
\x80
serait interprété par PHP, alors que\\x80
serait vu et interprété par le moteur d'expressions régulières.Après re-lecture de la réponse, je voudrais aussi vous demander si '|x80 - xFF|i' sans les barres obliques inverses est une syntaxe valide pour dire la même chose que ci-dessus.
Non, il ne serait pas. Lire sur chaînes de PHP concernant les barres obliques inverses.
OriginalL'auteur mario
Vous n'avez pas besoin d'utiliser la double barre oblique inverse dans un modèle avec PHP, cependant, même si vous l'utilisez, il est ignoré et le lire comme une évasion (comme une simple barre oblique inverse).
Une exception, si vous utilisez le heredoc ou de la syntaxe nowdoc pour joindre le modèle, une double barre oblique inverse est considéré comme un backslash.
OriginalL'auteur Casimir et Hippolyte