Данные пакета Python для данных пакета PHP - PullRequest
0 голосов
/ 22 марта 2011

Может кто-нибудь помочь мне получить эти данные в эквиваленте PHP: >4siiiiiiiiiiiii8x Он используется в struct.pack() в Python.это то, что я получил до сих пор: N14si13x8
он должен возвращаться: ('P3TF', 272, 64, 6832, 6896, 1426, 8336, 312, 8656, 0, 8656, 0, 8656, 2924384)

Результаты версии PHP:

array
  'si13x81' => int 1345541190
  'si13x82' => int 272
  'si13x83' => int 64
  'si13x84' => int 6832
  'si13x85' => int 6896
  'si13x86' => int 1426
  'si13x87' => int 8336
  'si13x88' => int 312
  'si13x89' => int 8656
  'si13x810' => int 0
  'si13x811' => int 8656
  'si13x812' => int 0
  'si13x813' => int 8656
  'si13x814' => int 2924384

все еще нужно получить первыйправый.

1 Ответ

1 голос
/ 22 марта 2011

Я думаю, главная проблема в том, что i и s имеют разное значение в PHP.Для воссоздания вашего исходного списка в PHP это работает:

print_r(unpack("a4header/N13int/x8fill", $p));

Дает мне:

Array(
    [header] => P3TF
    [int1] => 272
    [int2] => 64
    [int3] => 6832
    [int4] => 6896
    [int5] => 1426
    [int6] => 8336
    [int7] => 312
    [int8] => 8656
    [int9] => 0
    [int10] => 8656
    [int11] => 0
    [int12] => 8656
    [int13] => 2924384

Я не очень уверен насчет x8.Это не используется для заполнения в PHP.Возможно, попробуйте @, если он не работает с реальным файлом данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...