Base64, chaine valide ?

Mammouth du PHP | 959 Messages

27 juil. 2008, 13:33

Bonjour tout le monde :)

Je voudrais savoir si c'est possible, si oui, comment, de savoir si uns chaine encoder en base64 est décodé avec succès, parce-que si je demande à php qu'il me décode (par exemple) "salut !" j'obtiens
��n
ou même des truc du genre :
��n� ނ����
Bon, évidement, je ne veux pas qu'il me décode des chaines déjà décodées, mais en fait, je veux savoir si une chaine base64 est un chaine valide...

Voilà, merci à vous :)

ViPHP
ViPHP | 3300 Messages

28 juil. 2008, 15:34

tu as un deuxième paramètre pour base64_decode qui est un booléen vérifiant si la chaine est purement stricte ou pas. j'attire ton attention sur:

http://fr.php.net/base64_decode

regardes aussi les commentaires.
Fait du php depuis que ca existe ou presque :)

Mammouth du PHP | 959 Messages

28 juil. 2008, 15:55

Ah oui j'avais pas vu !

Alors j'ai repris leur fonction et je j'ai améliorer un peu la condition, c'est pas fiable à 100% mais c'est mieux que rien....
function is_base64_encoded($chaine){
	if (preg_match('%^[a-zA-Z0-9/+]*={0,2}$%', $chaine) && !empty($chaine) ) {
		return TRUE;
	} else {
		return FALSE;
	}
}
parce-qu'avec ça :
is_base64_encoded("");
Il retourné TRUE :roll:
Donc j'ai rajouté le empty() :P

Merci à toi ! :)