No.399


【PHP】文字列がbase64かどうかを判定する

正規表現を使わずに判定できないものか…

 できた。

$string = '判定したい文字列';
$is_base64 = $string == base64_encode(base64_decode($string, true));
if ($is_base64) {
  echo 'base64文字列';
}

PHP base64_decode

 base64_decode関数は、第二引数にtrueを指定するとstrictモードになり、base64以外の文字列が含まれているとfalseが返ってくる。strictモードじゃないとbase64部分以外を無視してデコードしまうので、正常な判定ができない。