2012-05-04 7 views
0

私は "16777215"のようなMSアクセスカラーを持っています。これは白です(#ffffff)。私はこの色の文字列をphpの#ffffffのように16進数に変換できますか?MS Access Colorをphpで16進数に変換しますか?

挨拶!

+1

答えはdechex()です。 http://php.net/manual/de/function.dechex.php – poldixd

答えて

1

MS Accessのカラー値は、RGBモードではなくBGRのような値で保存されます。 これは、値を16進数に変換した後に、第1バイトと第3バイトの場所を切り替える必要があることを意味します。例:

アクセシビリティカラーコード:5275647は、507FFFに変換されます。最初と3番目のバイトを切り替えると、FF7F50となります。これはあなたのHTMLカラーコードです。あなたは私が何を意味するかを見てここで

は、変換テーブルである: http://cloford.com/resources/colours/500col.htm

+0

return str_pad(dechex($ in)、6、0、STR_PAD_LEFT); ' – poldixd

+0

これは戻りません正しいhtmlカラーコード。これはバイト対称であるため16777215で機能しますが、他の値では機能しません。 – WojtekT

2

RGB HEXにMS Accessのカラー値を変換し、完全な機能があります。 WojtekTとpoldixdにこれを解決するためのヒントをありがとうございました。

<?php 
function color_msaccess2hex($in) { 
    $hex = str_pad(dechex($in), 6, 0, STR_PAD_LEFT); 

    // Switch first and third byte 
    $hex = mb_substr($hex,4,2).mb_substr($hex,2,2).mb_substr($hex,0,2); 

    return '#'.$hex; 
} 
関連する問題