Fonction base64_decode en PHP


Fonction base64_decode en PHP

Messagepar dommarion » 18 Juin 2023 18:57

Bonjour,
Nous disposons de la fonction d'encodage d'une chaine en base64: base64_encode, mais nous ne disposons pas de son inverse base64_decode.
Voir le lien pour le détail de la fonction en PHP:https://www.php.net/manual/fr/function.base64-decode.php

J'ai sollicité la teams pour inclure cette fonction dans la box.
Malheureusement, pour des raisons de rétrocompatibilité avec la box eedomus (vs eedomus+) il n'est pas possible de mettre cela en fonction globale dans pour la box.
Il faut déclarer une fonction dans vos scripts pour avoir ce résultat, je vous propose cette fonction sous le nom de sdk_base64_decode() (le jour où la team la passera en global, alors il n'y aura qu'à supprimer la déclaration de votre fonction dans vos scripts :ugeek: ).

Code : Tout sélectionner
function sdk_base64_decode($input) {
   $keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
   $chr1 = $chr2 = $chr3 = "";
   $enc1 = $enc2 = $enc3 = $enc4 = "";
   $i = 0;
   $output = "";

   $input = preg_replace("[^A-Za-z0-9\+\/\=]", "", $input);
   do {
      $enc1 = strpos($keyStr, substr($input, $i++, 1));
      $enc2 = strpos($keyStr, substr($input, $i++, 1));
      $enc3 = strpos($keyStr, substr($input, $i++, 1));
      $enc4 = strpos($keyStr, substr($input, $i++, 1));
      $chr1 = ($enc1 << 2) | ($enc2 >> 4);
      $chr2 = (($enc2 & 15) << 4) | ($enc3 >> 2);
      $chr3 = (($enc3 & 3) << 6) | $enc4;
      $output = $output . chr((int) $chr1);
      if ($enc3 != 64) {
         $output = $output . chr((int) $chr2);
      }
      if ($enc4 != 64) {
         $output = $output . chr((int) $chr3);
      }
      $chr1 = $chr2 = $chr3 = "";
      $enc1 = $enc2 = $enc3 = $enc4 = "";
   } while ($i < strlen($input));
   return urldecode($output);
}


Bon weekend à tous.
dommarion
OpenWeather|Phases soleil|HeatzyV2|Concaténateur|HP Yamaha|SomfyV3|Epson|Seuils n étages|Baie 2 vantaux|Deezer|Intégrale|Authorization Digest|TV Philips|SmartThings|fonction PHP|Tuya Smartlife|CozyTouch2|mySMS
dommarion
 
Messages : 590
Inscription : 28 Déc 2020

Retour vers Entraide programmation plugins

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 16 invité(s)