将HSL和/或RGB颜色从​​字符串转换为数组

时间:2018-02-05 19:57:45

标签: php

我需要 将HSL或RGB字符串颜色转换为数组 。我得到的参数类似于:

$str = "rgb(40, 50, 60)"; // or "hsl(40, 50%, 60%)"

转换为:

array(40, 50, 60); // or array(50, "50%", "60%")

我喜欢使用正则表达式的解决方案,我不想使用拆分功能; - (

注意: 我有一个RGB解决方案,但我不使用HSL:

$rgb_color = sscanf($str, "rgb(%d, %d, %d)");

2 个答案:

答案 0 :(得分:2)

你只需要在正则表达式中查找数字和Always(Default)符号,When Unlocked找到任何数字。并且Never php函数返回所有匹配而不仅仅是第一个匹配。

%

答案 1 :(得分:1)

您可以查找数字,后跟可选的%

preg_match_all('/([\d]+)%?/', $str, $matches);

然后使用$matches[1]