Documentation développeur
PHP
Mis à jour le 19 septembre 2026

Encodage et décodage Base64 en PHP

Encodez et décodez du Base64 correctement, y compris le texte UTF-8 et les données binaires en PHP.

Base64 transforme des données binaires en texte ASCII imprimable. Il est pratique pour le transport et l’intégration de données, mais ce n’est pas un chiffrement.

Démarrage rapide#

L’exemple suivant utilise l’API standard de PHP ou une bibliothèque couramment utilisée pour cette tâche.

Exemple#

PHP
1<?php2$text = "Hello ToolPorta";3$encoded = base64_encode($text);4$decoded = base64_decode($encoded, true);56if ($decoded === false) {7    throw new RuntimeException("Invalid Base64 input");8}910echo $encoded . PHP_EOL;11echo $decoded . PHP_EOL;

Opérations courantes#

Ce second exemple couvre une opération fréquente en production ou une manière plus sûre de traiter des entrées réelles.

Variante courante#

PHP
1<?php2function base64url_encode(string $data): string {3    return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');4}56function base64url_decode(string $data): string|false {7    $padded = str_pad($data, strlen($data) + (( - strlen($data) % ) % ), '=');8    return base64_decode(strtr($padded, '-_', '+/'), true);9}

Points importants#

Base64 n’est ni un chiffrement ni un mécanisme de sécurité. Encodez le texte en UTF-8 avant la conversion et choisissez explicitement la variante standard ou URL-safe.

Bonnes pratiques#

  1. Considérez toute entrée externe comme non fiable et gérez explicitement les erreurs d’analyse ou de validation.
  2. Rendez explicites l’encodage, les unités, les formats et les conventions propres aux bibliothèques aux frontières du système.
  3. Ajoutez des tests couvrant l’entrée vide, le texte Unicode, les entrées invalides et des données représentatives de la production.

Références#

Implémenter Base64 dans d'autres langages :