我沒有搜索stackoverflow和其他地方來解決我的問題,但他們都沒有幫助我解決它。Intval和(int)輸出零
裏面我while循環中的print_r(的$ MYVARIABLE)輸出以下陣列:
Array
(
[1] => 0000890233330000000000000000000000000000000000000000000001b3165721010000000000
)
Array
(
[1] => 00008a0233330000000000000000000000000000000000000000000001d5165721000000000000
)
Array
(
[1] => 00008b023333000000000000000000000000000000000000000000000109175721000000000000
)
Array
(
[1] => 00008f0233340000000000000000000000000000000000000000000001ad185721000000000000
)
Array
(
[1] => 00009002333500000000000000000000000000000000000000000000018d195721000000000000
)
我用下面的代碼拿出
$id = substr($myvariable[1], 6, 8);
$cid = hex2bin($id);
$rid = intval(str_replace("\0", '', $cid));
在更短的方式:
$rid = intval(str_replace("\0", '', hex2bin(substr($myvariable[1], 6, 8))));
我期待得到除了最後2個34和35之外的所有5個數組的整數33.但是我獲得零(0)。沒有使用intval()
,沒關係。我正在使用(int)
進行測試,並得到相同的零(0)。所以我最終沒有使用intval
/(int)
。雖然輸出結果對我來說是一個真實的數字,但是如果能夠幫助我將這些轉換爲php將它們理解爲實數,那我真的很感激。謝謝。
打開手冊並閱讀'注意此功能不會將十六進制數字轉換爲二進制數字。這可以使用base_convert()函數來完成。' –
如果您確實打算創建二進制數據而非基本2字符串,那麼還應注意,3位十六進制字符串在轉換爲2個字節之前應該填充爲4:5.4。 4 \t如果輸入字符串的長度是奇數,則會引發警告。在PHP 5.4.0中,字符串被默認接受,但最後一個字節被截斷。 –
@Dave S,我使用的是PHP 7.1.1和7.1.5。你的建議可能有問題嗎? –