使用 php 将 MS Access 颜色转换为十六进制?

Posted

技术标签:

【中文标题】使用 php 将 MS Access 颜色转换为十六进制?【英文标题】:Convert MS Access Color to hex with php? 【发布时间】:2012-05-04 09:49:15 【问题描述】:

我有一个像“16777215”这样的 MS 访问颜色。这是白色 (#ffffff)。如何使用 php 将此颜色字符串转换为 #ffffff 之类的十六进制?

你好!

【问题讨论】:

答案是 dechex(); php.net/manual/de/function.dechex.php 【参考方案1】:

有一个完整的函数可以将 MS Access 颜色值转换为 RGB HEX。感谢 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;

【讨论】:

【参考方案2】:

MS Access 中的颜色值不是以 RGB 模式存储的,而是以 BGR 之类的方式存储的。 这意味着在将值转换为十六进制后,您需要切换第一个和第三个字节的位置。示例:

访问颜色代码:5275647,转换为十六进制为:507FFF,切换第一个和第三个字节后得到:FF7F50,这就是你的html颜色代码。

这是一个转换表,所以你明白我的意思: http://cloford.com/resources/colours/500col.htm

【讨论】:

这对我有用:return str_pad(dechex($in), 6, 0, STR_PAD_LEFT); 这不会返回正确的 html 颜色代码。这适用于 16777215,因为它是字节对称的,但它不适用于其他值。

以上是关于使用 php 将 MS Access 颜色转换为十六进制?的主要内容,如果未能解决你的问题,请参考以下文章

将 MySQL 转换为 MS Access

将 MS Access 查询转换为 MariaDB

将 MS-Access 数据库转换为 SQL 脚本的工具

将 MS Access 报告转换为 SQL Server 报告

MS Access SQL 将行转换为列

将 MS Access 2000 转换为 2010