Можно упаковать структуру c битовыми полями в php?

Здравствуйте, ребята, у меня есть эта структура C, и я хочу знать, если это возможно, чтобы упаковать его в php fpr записи в двоичный файл:

Структура в C:

struct Date
{
unsigned spare : 6;
unsigned day : 6;
unsigned month : 4;
unsigned year : 16
};

Я прочитал документы на Perl, которые php скопировал для реализации двоичного пакета и вижу, что вы можете упаковать структуры, но не пример для структуры с битовыми полями.

Есть идеи для генерации в PHP?

0

Решение

Я решил это, добавив пользовательское расширение в php:

PHP_FUNCTION(custom_pack)
{
long ts;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &ts ) == FAILURE) {
RETURN_NULL();
}

time_t t = ts;

struct tm tm = *localtime(&t);

struct MariaDBColmunStoreDateTime the_date;
the_date.msecond = 000000;
the_date.second = tm.tm_sec ;
the_date.minute = tm.tm_min;
the_date.hour = tm.tm_hour;
the_date.day = tm.tm_mday;
the_date.month = tm.tm_mon + 1;
the_date.year =  tm.tm_year + 1900;char str[16];

sprintf(str,"%016llx",the_date);

strcpy(str, str_reverse_in_place(str,16));

RETURN_STRING(str, 1);

}

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]