Si j'ai une chaîne UTF-8 et que vous souhaitez remplacer les pauses de ligne avec le code HTML code>, est-ce sûr?
$var = str_replace("\r\n", "<br>", $var);
3 Réponses :
BTW, vous pouvez également consulter le NL2BR () P> str_replace () code> est sûr pour tout caractère ASCII-SAFE. P>
1st: Utilisez le balisage d'échantillon de code pour le code dans vos questions.
2e: oui, il est enregistré. p>
3ème: Ce n'est peut-être pas ce que vous voulez archirog. Cela pourrait être meilleur: p>
$var = str_replace(array("\r\n", "\n", "\r"), "<br/>", $var);
UTF-8 est conçu pour que les séquences multi-octets ne contiennent jamais de quelque chose qui ressemble à un caractère ASCII. C'est-à-dire que vous rencontrez un octet avec une valeur dans la plage 0-127, vous pouvez le supposer en toute sécurité pour être un caractère ASCII. P>
Et cela signifie que tant que vous n'essayez pas de remplacer les caractères ASCII avec des caractères ASCII, str_replace code> doit être sûr. P>
* Essayez uniquement de remplacer les caractères ASCII avec des caractères ASCII.
+1 pour l'explication appropriée. Je pense que les autres ont essayé de dire la même chose, mais c'est la seule réponse qui me rendait un sens idéal pour moi.
@Potatoswatter: Oops Ouais, c'est un point assez important. Édité. ;)
En fait, c'est plus sûr que cela même. UTF-8 est conçu de manière à ce que vous puissiez effectuer des remplacements de texte sensibles d'octets, sur UTF-8, de manière sûre et valide, tant que toutes les entrées et sorties sont valides UTF-8 Strings! Et vous n'obtiendrez jamais d'erreur. Non seulement peut-il utiliser Str_replace pour les remplacements ASCII dans une chaîne UTF-8, mais également utiliser Str_replace pour les remplaçants UTF-8 dans une chaîne UTF-8.
UTF8 est vraiment génial !. Ils ont même pensé à l'octet-seulement-conscient! Merci pour la perspicacité.
En réalité, la séquence par séquence remplacer est sûre tant que les séquences sont des séquences UTF-8 valides: même si vous remplacez "שלום" par "םלום" par "和平" comme Séquences d'octets i> Sans sécurité par UTF-8 conception
@Artyom: Eh bien, oui, mais c'est vrai pour chaque codage sain. Compte tenu de trois chaînes S, S0 et S1, où S0 est une sous-chaîne de S, tant que tous les trois sont valables dans le codage E, le remplacement de S0 pour S1 en S sera aussi i> produire une chaîne valable dans le codage E. Je ne vois pas ce qui est si spécial à ce sujet. La chose intéressante à propos de UTF8 est la garantie qu'il offre pour Autres codages i> (ASCII, dans ce cas)