2010-08-17 6 views
6

Comment puis-je savoir si une chaîne est une donnée codée avec la fonction base64_encode() ou non?La chaîne de caractères 64 est-elle codée?

Est-ce possible?

+1

Il serait beaucoup mieux si vous ne auriez pas besoin d'une telle détection du tout. Beaucoup de programmeurs expérimentés peuvent vivre sans elle et je suis sûr que vous pourriez. –

+1

Voir aussi http://stackoverflow.com/questions/475074 – Gumbo

+0

@Gumbo: Je n'ai pas ajouté la balise [php5] - mon édition a pris plus de temps que la vôtre. Je l'ai enlevé maintenant. – BoltClock

Répondre

17

Essayez de le décoder strictement par rapport à l'alphabet Base64. Le deuxième paramètre vous permet d'appliquer cette vérification stricte; en le laissant dehors, la fonction de décodage des bandes simplement des caractères illégaux avant décodage:

if (base64_decode($str, true) === false) 
{ 
    echo 'Not a Base64-encoded string'; 
} 
1

Essayez ceci:

if(base64_encode(base64_decode($img, true)) === $img) 
    echo 'is a Base64-encoded string' ;