Documentation
Helper BaseConvert
Table des matières ▼
Présentation
Ce helper sert à convertir des bases. Cela peut être utile notamment pour créer des tokens cryptographiques.
Utilisation
L'objet \Temma\Utils\BaseConvert propose plusieurs méthodes statiques, qui servent à convertir des nombres depuis une base numérique vers une autre.
Certaines méthodes attendent que leur soit fourni la composition de la base. Par exemple, pour une base hexadécimale classique (base 16), il s'agit de la chaîne de caractères 0123456789abcdef.
D'autres méthodes ont juste besoin de la taille de la base. La composition de la base elle-même sera alors un sous-ensemble de la base 95, qui est une base contenant les 95 caractères ASCII imprimables : 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#"',;\_`|~
Enfin, d'autres méthodes utilisent des bases "spéciales", qui sont des sous-ensembles spécifiques :
-
base 85 : Tous les caractères imprimables utilisable en ligne de commande sans échappement.
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$# -
base 80 : Dérivée de la base 85, à laquelle ont été retiré les caractères spéciaux en HTML
(&<>?/).
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!*()[]{}@%$# -
base 73 : Dérivée de la base 54, avec des caractères spéciaux supplémentaires.
23456789abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ!#%()*+,-./:;=?@[]_ -
base 71 : Contient tous les caractères qui ne sont pas encodés dans une URL.
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!'()*-._~ -
base 61 : Dérivée de la base 71, sans les caractères similaires (0oO1ilIL!i~).
23456789abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ'()*-._ -
base 54 : Dérivée de la base 62 (0-9a-zA-Z), sans les caractères similaires
(0oO1iIlL).
23456789abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ -
base 31 : Dérivée de la base 36 (0-9a-z) sans les caractères similaires
(0o1il).
23456789abcdefghjkmnpqrstuvwxyz
convert()
Signature complète de la méthode :
convert(string $input, int $inBase, int $outBase) : string
Paramètres :
- $input : Chaîne contenant le nombre à convertir.
- $inBase : Taille de la base en entrée (<= 95).
- $outBase : Taille de la base en sortie (<= 95).
Cette méthode convertit un nombre, depuis n'importe quelle base, vers n'importe quelle base. Les tailles des bases d'entrée et de sortie sont données en paramètres ; ces bases sont donc des sous-ensembles de la base 95.
Exemples :
use \Temma\Utils\BaseConvert as TµBaseConvert;
// convertit "255" (base 10) en "ff" (base 16)
$res = TµBaseConvert::convert('255', 10, 16);
// convertit "99999" (base 10) en "b7X" (base 95)
$res = TµBaseConvert::convert('99999', 10, 95);
convertBase()
Signature complète de la méthode :
convertBase(int|string $value, string $inDigits, string $outDigits) : string
Paramètres :
- $value : Valeur à convertir.
- $inDigits : Chaîne contenant la base d'entrée.
- $outDigits : Chaîne contenant la base de sortie.
Cette méthode convertit un nombre, depuis n'importe quelle base, vers n'importe quelle base. Les caractères composant les bases d'entrée et de sortie sont donnés en paramètre.
Exemple :
use \Temma\Utils\BaseConvert as TµBaseConvert;
// convertit le nombre "99" (base 10) en "iuo"
// (dans la base constituée des voyelles)
$res = TµBaseConvert::convertBase(99, '0123456789', 'aeiouy');
convertFromSpecialBase()
Signature complète de la méthode :
convertFromSpecialBase(string $input, int $inBase, int $outBase) : string
Paramètres :
- $input : Valeur à convertir.
- $inBase : Taille de la base en entrée (31, 54, 61, 71, 73, 80, 85, 95).
- $outBase : Taille de la base en sortie (<= 95).
Cette méthode convertit un nombre depuis une base spéciale (cf. liste ci-dessus), vers n'importe quelle base sous-ensemble de la base 95.
Exemple :
use \Temma\Utils\BaseConvert as TµBaseConvert;
// convertit le nombre "5d3t" (base 31)
// en "99999" (base 10)
$res = TµBaseConvert::convertFromSpecialBase('5d3t', 31, 10);
convertToSpecialBase()
Signature complète de la méthode :
convertToSpecialBase(string $input, int $inBase, int $outBase) : string
Paramètres :
- $input : Valeur à convertir.
- $inBase : Taille de la base en entrée (<= 95).
- $outBase : Taille de la base en sortie (31, 54, 61, 71, 73, 80, 85, 95).
Cette méthode convertit un nombre depuis n'importe quelle base (sous-ensemble de la base 95) vers une base spéciale (cf. liste ci-dessus).
Exemple :
use \Temma\Utils\BaseConvert as TµBaseConvert;
// convertit le nombre "99999" (base 10)
// en "5d3t" (base 31)
$res = TµBaseConvert::convertToSpecialBase(99999, 10, 31);
Précédent : | Helper ANSI |
Suivant : | Helper DataFilter |
Table des matières
- Migration : Comment passer de Temma 1.x à la version 2
- Installation : Télécharger Temma et l'installer pour démarrer votre projet Web
- Configuration : Toutes les directives de configuration du fichier etc/temma.json et les variables d'environnement utilisables en option
- Bibliothèques externes : Comment utiliser des bibliothèques de fonctions externes
- Routage : Le système de routage par défaut de Temma, et le routage avancé
- Log : Utilisation du système de log, gestion par niveaux de criticité
- Contrôleurs : Pièces essentiels de votre application Web
- Vues : Templates Smarty ou exports JSON/CSV/RSS/iCal/INI
- Injection de dépendances : La colonne vertébrale de vos développements applicatifs
- Sessions : Extension des sessions utilisateurs gérées par PHP
- Sources de données : Pour gérer l'accès aux données de manière unifiée
- Modèle : Comment utiliser les DAO pour accéder aux bases de données
- Flux d'exécution : Comment gérer le flux d'exécution, entre les plugins et le contrôleur
- Plugins : Comment utiliser les plugins, et écrire les vôtres pour modulariser votre code
- Attributs : Comment filtrer l'accès aux contrôleurs et aux actions
- Tests : Pour écrire des tests d'intégration automatisés.
- Interface en ligne de commande : Pour créer des scripts exécutables en ligne de commande, initialisés automatiquement par Temma
-
Helpers :
Objets proposés par Temma pour vous aider dans plusieurs circonstances
- Scripts en ligne de commande
-
Contrôleur + plugin
- Auth : Contrôleur et plugin servant à gérer l'authentification des utilisateurs
- Plugins
- Attributs
-
Plugins Smarty
- urlize : Modificateur transformant un texte en URL
- filenamize : Modificateur transformant un texte en nom de fichier
- nbsp : Modificateur transformant des espaces en espaces non sécables
-
Objets utilitaires
- ANSI : Pour mettre en forme les textes écrits sur la sortie standard
- BaseConvert : Pour faire des conversions de bases numériques
- DataFilter : Pour filtrer et valider des données
- Email : Pour envoyer des emails
- HTMLCleaner : Pour nettoyer un flux HTML provenant d'un éditeur WYSIWYG
- IniExport : Pour exporter des données au format INI
- Json : Pour lire des flux JSON pouvant contenir des commentaires
- Lock : Pour verrouiller l'accès à un fichier, ou l'exécution du script PHP courant
- Registry : Pour stocker proprement des variables globales
- Smarty : Pour traiter des templates Smarty en dehors de la vue
- Term : Gestion des terminaux (TTY)
- Text : Différents traitements sur les chaînes de caractères
- Timer : Pour gérer des chronomètres