No.399
【PHP】文字列がbase64かどうかを判定する
正規表現を使わずに判定できないものか…
できた。
$string = '判定したい文字列';
$is_base64 = $string == base64_encode(base64_decode($string, true));
if ($is_base64) {
echo 'base64文字列';
}
base64_decode
関数は、第二引数にtrue
を指定するとstrictモードになり、base64以外の文字列が含まれているとfalseが返ってくる。strictモードじゃないとbase64部分以外を無視してデコードしまうので、正常な判定ができない。