3

$_GET の値が RGB 値かどうかをチェックする関数が必要です。私は何が欠けていますか?

function is_rgb($val)
{
    return (bool)preg_match("/^(rgb(s*b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])bs*,s*b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])bs*,s*b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])bs*))|(rgb(s*(d?d%|100%)+s*,s*(d?d%|100%)+s*,s*(d?d%|100%)+s*))$/",
        $val);
}

if(!isset($_GET["header_bg_color"])) $header_bg_color = "E8F0F2";
else $header_bg_color = is_rgb($_GET["header_bg_color"]);
4

2 に答える 2

7

16 進数検証関数

function validHex($hex) {
   return preg_match('/^#?(([a-f0-9]{3}){1,2})$/i', $hex);
}

$hex = '#FFFFFF';
if ( validHex($hex) ) {
   echo 'valid hex color';
}
else {
   echo 'invalid hex color';
}

RGB検証関数

function validRgb($rgb) {
   return count($rgb) == 3 && is_numeric(implode($rgb)) && max($rgb) <= 255;
}

$rgb['r'] = '255';
$rgb['g'] = '255';
$rgb['b'] = '255';
if ( validRgb($rgb) ) {
   echo 'valid rgb color';
}
else {
   echo 'invalid rgb color';
}
于 2015-08-19T02:16:47.663 に答える