Есть класс для архивации файлов, в нём конструкция вида PHP: $dtime = dechex($this->unix2DosTime($time)); $hexdtime = '\x' . $dtime[6] . $dtime[7] . '\x' . $dtime[4] . $dtime[5] . '\x' . $dtime[2] . $dtime[3] . '\x' . $dtime[0] . $dtime[1]; eval('$hexdtime = "' . $hexdtime . '";'); Для чего здесь eval и как можно его заменить? Без этой строки архив создаётся, но не открывается.
он собирает эти коды в байты правильные. Потому что когда ты пишешь так "\xABCD", то пхп их заменяет. А т.к. они уже сидят в переменной и частями - не заменяет. Поэтому такая конструкция. Конечно это бред. =) Но работает.
Прикольный код. Вот его замена. PHP: $dtime = $this->unix2DosTime($time); $hexdtime = pack("nn", $dtime, $dtime >> 16); --- Добавлено --- Что бы было понятно о чем речь, стоит прочесть вот эту статью
Да можно, придется сначала сделать dec2hex, потом переставлять буковки местами и только потом hex2bin.