<?php
function
RGBToHex(
$rgb
){
$regexp
=
"/^rgb\(([0-9]{0,3})\,\s*([0-9]{0,3})\,\s*([0-9]{0,3})\)/"
;
$re
= preg_match(
$regexp
,
$rgb
,
$match
);
$re
=
array_shift
(
$match
);
$hexColor
=
"#"
;
$hex
=
array
(
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
);
for
(
$i
= 0;
$i
< 3;
$i
++) {
$r
= null;
$c
=
$match
[
$i
];
$hexAr
=
array
();
while
(
$c
> 16) {
$r
=
$c
% 16;
$c
= (
$c
/ 16) >> 0;
array_push
(
$hexAr
,
$hex
[
$r
]);
}
array_push
(
$hexAr
,
$hex
[
$c
]);
$ret
=
array_reverse
(
$hexAr
);
$item
= implode(
''
,
$ret
);
$item
=
str_pad
(
$item
, 2,
'0'
, STR_PAD_LEFT);
$hexColor
.=
$item
;
}
return
$hexColor
;
}
function
hColor2RGB(
$hexColor
) {
$color
=
str_replace
(
'#'
,
''
,
$hexColor
);
if
(
strlen
(
$color
) > 3) {
$rgb
=
array
(
'r'
=> hexdec(
substr
(
$color
, 0, 2)),
'g'
=> hexdec(
substr
(
$color
, 2, 2)),
'b'
=> hexdec(
substr
(
$color
, 4, 2))
);
}
else
{
$color
=
str_replace
(
'#'
,
''
,
$hexColor
);
$r
=
substr
(
$color
, 0, 1) .
substr
(
$color
, 0, 1);
$g
=
substr
(
$color
, 1, 1) .
substr
(
$color
, 1, 1);
$b
=
substr
(
$color
, 2, 1) .
substr
(
$color
, 2, 1);
$rgb
=
array
(
'r'
=> hexdec(
$r
),
'g'
=> hexdec(
$g
),
'b'
=> hexdec(
$b
)
);
}
return
$rgb
;
}
print_r(RGBToHex(
"rgb(255,255,255)"
));
print_r(hColor2RGB(
'#ff00ff'
));