PHP:将速记十六进制颜色转换为常规颜色

flo*_*eft 1 php hex colors

我正在尝试制作一个将短手六角颜色用于长十六进制颜色的功能.

例如,如果有人提交"f60",它将转换为"ff6600".我知道我需要重复每个数字,但最有效的方法是什么?

谢谢.

Ben*_*n S 9

这应该工作.但是,#由于精确的strlen比较,您需要确保字符串不会添加前缀.

// Done backwards to avoid destructive overwriting
// Example: f60 -> ff6600
if (strlen($color) == 3) {
    $color[5] = $color[2]; // f60##0
    $color[4] = $color[2]; // f60#00
    $color[3] = $color[1]; // f60600
    $color[2] = $color[1]; // f66600
    $color[1] = $color[0]; // ff6600
}
Run Code Online (Sandbox Code Playgroud)