-
-
Save gwarnants/2048791 to your computer and use it in GitHub Desktop.
<?php | |
/** | |
* @param string $str | |
* @return bool | |
*/ | |
function is_base64($str) | |
{ | |
return (bool)preg_match('`^[a-zA-Z0-9+/]+={0,2}$`', $str); | |
} |
function is_base64($str){
if ( base64_encode(base64_decode($str, true)) === $str){
return true;
} else {
return false;
}
}
is_base64('Matthies') or is_base64('Barthels') return true
this is real name and function fails!!!!
function is_base64($str){ if ( base64_encode(base64_decode($str, true)) === $str){ return true; } else { return false; } }
is_base64('Matthies') or is_base64('Barthels') return true
this is real name and function fails!!!!
@desaikalpesh34 I believe this solve your problem and mine!
private function isBase64Encoded(string $s) : bool
{
if ((bool) preg_match('/^[a-zA-Z0-9\/\r\n+]*={0,2}$/', $s) === false) {
return false;
}
$decoded = base64_decode($s, true);
if ($decoded === false) {
return false;
}
$encoding = mb_detect_encoding($decoded);
if (! in_array($encoding, ['UTF-8', 'ASCII'], true)) {
return false;
}
return $decoded !== false && base64_encode($decoded) === $s;
}
Dude.. i've searched far and wide - and your solution is the only one that "TRULY" works..
Thanks mate!
Glad to help! @colzzky :)
Maybe this better
<?php function is_base64($str){ if ( base64_encode(base64_decode($str, true)) === $str){ return true; } else { return false; } }
Thanks bro!!!!
Perfect
None of the answers worked for me. In my case it was the lack of spaces that I used to tell if it was base64 encoded
$teststring = substr($string,4,100);
$not64 = strpos($teststring," ");
It's not in a function, but it has worked for me. I'm sure people will tell me that it won't always work, but ALL of the functions suggested above returned false for me regardless of the string.
Thanks bro!!!!