从php中的字符串获取颜色的一些方法


Some way to get colors from string in php?

我有一个这样的字符串

$color="rgb(255, 255, 0)";

我想得到一个数组或三个不同变量中的值255255,0。例如

$arr[0]=255;
$arr[1]=255;
$arr[2]=0;

我认为可以用正则表达式来实现。但我不擅长。谢谢

如果它总是这样的格式,那么它应该在不使用正则表达式的情况下工作:

$color = str_replace(array('rgb(', ')', ' '), '', $color);
$arr = explode(',', $color);

我们使用str_replace()来去掉不感兴趣的数据和空白,然后使用explode()逗号上的字符串来给出您在$arr中想要的输出数组格式。

我还将这个解决方案添加到了一个代码板中,这样你就可以看到运行它时会发生什么

使用此代码,您不必担心逗号和数字之间的额外空格

$data = "rgb(255, 255, 0)";
$data = "rgb(     255    , 255     ,  0  )";
preg_match_all("/rgb's*'('s*('d+)'s*,'s*('d+)'s*,'s*('d+)'s*')/i", $data, $matches);
print("<PRE>");
var_dump($matches);
print("</PRE>");
$colors = array();
preg_match('/rgb *'( *('d+), *('d+), *('d+) *')/', $colors);
list( , $red, $green, $blue) = $colors;
<?php
$color="rgb(255, 255, 0)";
$color=explode('(',$color);
$color=explode(')',$color[1]);
$color=explode(', ',$color[0]);
echo $color[0]."<br>";
echo $color[1]."<br>";
echo $color[2]."<br>";
?>

请参见代码板示例。

<?php
$text =  'rgb(255, 255, 0)';
preg_match_all('/''d+/', $text, $matches);
print_r(reset($matches));
?>

edit使用reset((函数