2012-12-07 23 views
2

我正在讀取CSV文件(採用UTF-8編碼)。其中一個值是一個數字,當我嘗試將它轉換爲整數時,我可以進行一些計算,它只是設置爲零。我究竟做錯了什麼?PHP的字符串整數不是很好,編碼問題?

var_dump ($row3[_MM_Impressions]); 
//writes: string(5) "59" 

$imps = (int)$row3[_MM_Impressions]; 
var_dump($imps); 
//writes: int(0) 

$imps = $row3[_MM_Impressions]*1; 
var_dump($imps); 
//writes: int(0) 

$imps = intval($row3[_MM_Impressions]); 
var_dump($imps); 
//writes: int(0) 
+1

你知道字符串中的其他3個字符是什麼嗎? – Musa

+0

var_dump:string(5):'59'對我來說看起來不正確 – Dale

+0

%00%35%00%39%00(這是十六進制轉儲)。 – user1884377

回答

2

您的增值經銷商HEX串號...那麼,爲什麼你不使用hexdec

返回由hex_string參數表示的十六進制數字 的十進制等效值。十六進制()將十六進制字符串轉換爲十進制數字 。

hexdec()會忽略它遇到的任何非十六進制字符。

+0

不幸的是,它得到了錯誤的int數。 Vardump(original):string(5)「59」Vardump(在十六進制($ row3 [_MM_Impressions])之後):int(89)int(89)這裏是另一個應該是49的例子:string(5)「 49「int(73)int(73) – user1884377