【发布时间】:2013-11-23 06:04:36
【问题描述】:
我正在尝试将十六进制数字转换为正确的css 格式:
$white = hexdec('#ffffff');
//Loops for a bunch of colours
for( $i = 0 ; $i <= $white ; $i=$i+5000 )
{
//set default css background-color property
$backgroundValue = dechex( $i );
//if there are less of 7 characters (ex. #fa444, or #32F, ...)
if( $numLen = strlen( dechex( $i )) < 7 )
{
//insert (7 - numbers of characters) number of zeros after #
for ( $j = 0 ; $j < 7 - $numLen ; $j++ )
$backgroundValue = strtr( $backgroundValue, '#', '#0' );
}
//echo each div with each background-color property.
echo '<div class="colour" style="width: 10%; float: left; background: '.$backgroundValue.';">'.dechex($i).'</div>';
}
但这不起作用。我怎么能把十六进制数变成一个字符串,比如:#FFFFFF。
更新:
问题是我没有将# 传递到字符串的开头:$backgroundValue = '#'.dechex( $i );。
这段代码运行良好:
$white = hexdec('#ffffff');
for( $i = 0 ; $i <= $white ; $i=$i+10000 )
{
$backgroundValue = '#'.dechex( $i );
$numLen = strlen( dechex( $i ));
if( $numLen < 6 )
{
for ( $j = 0 ; $j < (6 - $numLen) ; $j++ )
$backgroundValue = str_replace( '#', '#0', $backgroundValue );
}
echo '<div class="colour" style="width: 10%; float: left; background: '.$backgroundValue.';">'.$backgroundValue.'</div>';
}
【问题讨论】:
-
此链接可能会有所帮助:anyexample.com/programming/php/…
-
$white = hexdec('ffffff'); // <-- 16777215 var_dump(dechex($white)); // <-- 'ffffff' -
您缺少用于
strtr()函数的)和用于颜色属性的#,但它对我有用吗? jsfiddle.net/fxm79sandbox.onlinephpfunctions.com/code/…