0

私はこのPythonスクリプトを持っています

b_string = pack('>hqh2sh13sh5sh3sBiiihiiiiii',
                21, 0,
                len(country), country,
                len(device), device,
                len('1.3.1'), "1.3.1",
                len('Web'), "Web",
                27, 0, 0,
                3, 0, cid, lac,
                0, 0, 0, 0)

そしてそれをphpに変換したいのですが、これは私がこれまでに持ってきたものです

$body= pack('nln2c*n13c*n5c*n3c*Ciiiniiiiii',
                    21, 0,
                    strlen($this->_mccToCountry[$this->_mcc]), $this->_mccToCountry[$this->_mcc],
                    strlen($this->_device), $this->_device,
                    strlen('1.3.1'), "1.3.1",
                    strlen('Web'), "Web",
                    27, 0, 0,
                    3, 0, $this->_cellId, $this->_lac,
                    0, 0, 0, 0);

変数はPythonスクリプトの変数と同じですが、このエラーが発生しました

PHP警告:pack():タイプn:... / application / extends / Zend-extensions / NMS / Bts.php:150の引数が少なすぎます

助けていただければ幸いです。

4

1 に答える 1

0

パラメータ文字列はすべて台無しになっています。あなたは2、5、3、13のショートパンツを通過することを場所に示しますが、毎回1つだけ提供します。一連の文字を提供することを示しますが、その後、NUL終了した文字列を提供します。unsigned charを提供することを示しますが、提供しないでください。代わりに、次のフォーマット文字列を試してください。

'nlna*na*na*na*i3ni6'

別のオプションはserializedeserialize代わりにを使用することです。データがバイトにパックされているのか、文字列にシリアル化されているのかが重要かどうかはわかりません。

于 2010-08-23T08:29:01.413 に答える