2017-08-24 119 views
0

我正在讀取SQL數據庫中的BLOB。該文件應該包含1024浮點值對,但我不知道如何轉換它們。這是我的查詢:將十六進制文件轉換爲浮點數php

$stmt = $sqlHandle->query('SELECT convert (varchar (max), convert (varbinary (max), blob)) AS dump FROM data WHERE id = 200 

這讓我有32842個字符,它開始像這樣的字符串: 0x000008044072A051E00000004072AD70A00000004072BA​​8F600000004072C7AE200000004072D4CCC00

我不知道斑是如何產生的。我只是說,第一對應該看起來類似於這個轉換後: 248.23112 0.000048741

有人可以向我解釋如何獲得字符串轉換?

回答

2
<?php 
    var_dump(hexdec("0x000008044072A051E00000004072AD70A00000004072BA8F600000004072C7AE200000004072D4CCC00")); 
    ?> 
+0

這將返回一個單值:float(4.180510645326E + 93)。所以我想我需要砍掉弦,對吧?但是如何?我沒有很高興地使用十六進制數字... – Sikarjan

+0

只是使用imploade()這裏的一個例子https://www.w3schools.com/php/showphp.asp?filename=demo_func_string_implode –

+0

我不相信內爆是幫助這裏。字符串已經有點崩潰了。我需要弄清楚字符串的哪一部分是一個數字。 0x代表剩下的是十六進制,對吧?但後來我迷了路。在哪裏das第一個數字開始和多少個字符屬於它... – Sikarjan