Vous utilisez un navigateur obsolète, veuillez le mettre à jour.
Veuillez utiliser un navigateur internet moderne avec JavaScript activé pour naviguer sur OpenClassrooms.com
Une question ? Pas de panique, on va vous aider !
Bonjour,
Je souhaite convertir du texte en base64.
Le problème c'est que mon texte contient des caractères spéciaux à savoir des antislashs et encore plus problématique, il y en a 3 à la suite.
La fonction base64_encode me renvoi une chaine base64 qui contient seulement deux antislashs au lieu des 3 dans mon texte d'origine.
Exemple
base64_encode('\\\"start_year\\\":\\\"2024\\\"')
Me retourne XFwic3RhcnRfeWVhclxcIjpcXCIyMDI0XFwi ce qui correspond à \\"start_year\\":\\"2024\\"
Comment faire pour conserver les \\\ après l'encodage?
La chaine de caractère conformément convertie est XFxcInN0YXJ0X3llYXJcXFwiOlxcXCIyMDI0XFxcIg==
> Pour spécifier un antislash littéral, doublez-le (\)
Si tu veux 3 backslashs, tu dois écrire ta chaîne avec 5 (ou 6) ?
var_dump(base64_encode('\\\\\"start_year\\\\\":\\\\\"2024\\\\\"')); var_dump(base64_encode('\\\\\\"start_year\\\\\\":\\\\\\"2024\\\\\\"'));
string(44) "XFxcInN0YXJ0X3llYXJcXFwiOlxcXCIyMDI0XFxcIg==" string(44) "XFxcInN0YXJ0X3llYXJcXFwiOlxcXCIyMDI0XFxcIg=="
Vu que \" n'est pas une séquence d'échappement valide/reconnue, il la retranscrit littéralement sans changement c'est pourquoi avec 5 ça fonctionne aussi.
\"
-Edité par julp 1 octobre 2024 à 15:29:34
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
Vous pouvez rédiger votre message en Markdown ou en HTML uniquement.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli