2010-08-17 17 views
6

¿Cómo puedo saber si una cadena es un dato codificado con la función base64_encode() o no?¿La cadena base 64 está codificada?

¿Es posible?

+1

Sería mucho mejor si usted no necesitaría tal detección en absoluto. Muchos programadores experimentados pueden vivir sin él y estoy seguro de que podrías hacerlo. –

+1

Ver también http://stackoverflow.com/questions/475074 – Gumbo

+0

@Gumbo: No agregué la etiqueta [php5] - mi edición tardó más en enviarse que la tuya de alguna manera. Lo he eliminado ahora. – BoltClock

Respuesta

17

Intenta decodificarlo estrictamente contra el alfabeto Base64. El segundo parámetro le permite aplicar esta verificación estricta; dejándolo a cabo, la función de decodificación simplemente excluye los caracteres no válidos antes de la decodificación:

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

Prueba esto:

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