2014-04-30 52 views
-1

大家好我試着搜索一下,但沒有發現任何東西,這將幫助我精確請幫助我這是最後一件事,這將有助於我的程序認證系統開始我試圖掃描用戶基地ID,現在BaseID存儲在我的數據庫中,我通過SQL獲取它並從那裏從我的程序(在Lua中製作)中讀取它的問題是我無法直接掃描它的4字節格式的BaseID,並提供了太多的結果,而不是我將它轉換爲十六進制形式,它工作得很好,我想在服務器上使用PHP以十六進制格式轉換它,所以一旦它獲取它在十六進制轉換,所以我需要轉換腳本的幫助,我無法做到這一點我使用如何將多個十進制值轉換爲十六進制在PHP中

$BaseID = '' 
$BaseIDHex = dechex($BaseID); 
{ 
    echo $BaseIDHex; 
} 

它做什麼,我需要的部分

想我了baseid爲1234567890它給了我輸出:499602D2 但我希望它以這種形式:D2 02 96 49(反向,並在之間的空間)


更新:新在同一個

$BaseID = ''; 
$BaseID = $row1['field_12']; 
$Addition = ' 00 00 00 00 00 00 00 00 00"'; 
$BaseIDHex = dechex($BaseID); 
$result = ''; 
while(strlen($BaseIDHex) >=2){ 
    $result = strtoupper($result.substr($BaseIDHex, -2))." "; 
    $BaseIDHex = substr($BaseIDHex, 0, strlen($BaseIDHex)-2); 
} 
echo 'check = "'; 
echo trim($result); 
echo $Addition; 

問題補充它pritns我check = "B9 09 EE 00 00 00 00 00 00 00 00 00"

它現在完美工作,現在我想在上面的代碼$ BaseID是1沒有做一些改變。 15600057但有時我有多個ids存儲在數據庫中,如15600057,12600057任何想法如何將它們轉換爲hexstring並以上述代碼中的相同方式顯示回顯它們?所以它迴應這樣的最終結果

check = "B9 09 EE 00 00 00 00 00 00 00 00 00" check1 = "C9 56 fe 00 00 00 00 00 00 00 00 00" ?? ??

回答

0

@Shankar達莫達倫的代碼如下方式清潔劑(+1),但我還是想發表我的版本

$BaseID = '1234567890'; 
$BaseIDHex = dechex($BaseID); 
$result = ''; 
while(strlen($BaseIDHex) >=2){ 
    $result = strtoupper($result.substr($BaseIDHex, -2))." "; 
    $BaseIDHex = substr($BaseIDHex, 0, strlen($BaseIDHex)-2); 
} 
echo trim($result); 
+0

謝謝,這正是我一直在尋找cle一個容易理解:) – Reaper

1

做到這一點的方式..

$BaseID = '1234567890'; 
$BaseIDHex = dechex($BaseID); 
echo $v = implode(' ',array_reverse(explode(' ',strtoupper(wordwrap($BaseIDHex, 2, " ", true))))); 

Demonstration

+0

感謝這就是我所尋找的只是看起來有些複雜,但作品像魅力:) – Reaper

相關問題