PHPでBase64エンコーディングを検出する方法


  1. 正規表現を使用する方法:

    function isBase64Encoded($string) {
    return preg_match('/^[a-zA-Z0-9\/\r\n+]*={0,2}$/', $string);
    }
    // 使用例:
    $string = 'SGVsbG8gd29ybGQ='; // Base64エンコードされた文字列
    if (isBase64Encoded($string)) {
    echo "与えられた文字列はBase64エンコードされています。";
    } else {
    echo "与えられた文字列はBase64エンコードされていません。";
    }
  2. base64_decode() 関数を使用する方法:

    function isBase64Encoded($string) {
    $decoded = base64_decode($string, true);
    if (base64_encode($decoded) === $string) {
    return true;
    } else {
    return false;
    }
    }
    // 使用例:
    $string = 'SGVsbG8gd29ybGQ='; // Base64エンコードされた文字列
    if (isBase64Encoded($string)) {
    echo "与えられた文字列はBase64エンコードされています。";
    } else {
    echo "与えられた文字列はBase64エンコードされていません。";
    }
  3. 文字列の長さとパディングをチェックする方法:

    function isBase64Encoded($string) {
    $length = strlen($string);
    if ($length % 4 === 0 && preg_match('/^[a-zA-Z0-9\/\r\n+]*={0,2}$/', $string)) {
    return true;
    } else {
    return false;
    }
    }
    // 使用例:
    $string = 'SGVsbG8gd29ybGQ='; // Base64エンコードされた文字列
    if (isBase64Encoded($string)) {
    echo "与えられた文字列はBase64エンコードされています。";
    } else {
    echo "与えられた文字列はBase64エンコードされていません。";
    }