改进后的网页调色板PHP程序
    上次发表过一个类似的程序,不过那个程序中的颜色算法不好,无法列出所有的颜色,这次改进了算法,调整参数可以列出全部颜色,且不用提交网页,直接合成新颜色。
    本程序存成*.php,运行后下面有一条红色带,鼠标点击上面的色块颜色会随之调整,这样可以达到穷举所有颜色的目的。

<?
  $cell_height
=10;
  
$cell_width=10;
  
$color_step=16;//颜色阶跃值,最好为256的因数
  
$cell_height_n=256/$color_step;
  
$cell_width_n=256/$color_step;
?>
<html>
<head>
<title>调色板</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript">
// **************************************************************
//                    Written by caocao
//                    [email protected]
//                    http://caocao.oso.com.cn
// **************************************************************
  function set_color(the_color)
  {
    document.color.current_color.value=the_color.style.background;
    return (false);
  }
  function change_color(the_color)
  {
<?
  
for ($i=0;$i<$cell_height_n;$i++)
  {
    for (
$j=0;$j<$cell_width_n;$j++)
    {
      
$back_color=dechex($i*$color_step*256+$j*$color_step);
      for (
$k=strlen($back_color);$k<4;$k++)
      {
          
$back_color="0".$back_color;
      }
      echo 
"w".$i."h".$j.".style.background=the_color+"".$back_color."";";
    }
  }
?>
    return (false);
  }
</script>
</head>
<body bgcolor="#FFFFFF">
<?
  
echo "<table width=".$cell_width*$cell_width_n." border=0 cellspacing=0 cellpadding=0>n";
  for (
$i=0;$i<$cell_height_n;$i++)
  {
    echo 
"<tr height=".$cell_height.">n";
    for (
$j=0;$j<$cell_width_n;$j++)
    {
      
$back_color=dechex($i*$color_step*256+$j*$color_step);
      for (
$k=strlen($back_color);$k<6;$k++)
      {
          
$back_color="0".$back_color;
      }
      echo 
"<td width=".$cell_width." height=".$cell_height."><div id=w".$i."h".$j." style="position:relativewidth:".$cell_width."pxheight:".$cell_height."pxbackground:".$back_color."font-size:1px"><a href=# onclick="return set_color(w".$i."h".$j.");"><img src=blank.gif border=0 width=".$cell_width." height=".$cell_height."></a></div></td>n";
    }
    echo 
"</tr>n";
  }
  echo 
"</table><br>n";
  
  echo 
"<table width=".$cell_width*$cell_width_n." border=0 cellspacing=0 cellpadding=0>n";
  echo 
"<tr height=".$cell_height.">n";
  for (
$i=0;$i<$cell_height_n;$i++)
  {
    
$back_color=dechex($i*$color_step*256*256);
    for (
$k=strlen($back_color);$k<6;$k++)
    {
      
$back_color="0".$back_color;
    }
    echo 
"<td width=".$cell_width." height=".$cell_height."><div id=w".$i." style="position:relativewidth:".$cell_width."pxheight:".$cell_height."pxbackground:".$back_color."font-size:1px"><a href=# onclick="return change_color('".substr($back_color,0,2)."')"><img src=blank.gif border=0 width=".$cell_width." height=".$cell_height."></a></div></td>n";
  }
  echo 
"</tr>n";
  echo 
"</table><br>n";
?>
<form name="color" >
当前颜色为<input type="text" name="current_color" size="7" maxlength="7">
</form>
</body>
</html>