2012-06-12 80 views
0


我有用php讀取dbase(dbf)文件的奇怪問題。php dbase擴展中斷浮點數

我的開發環境

  • OS:Win 7的
  • PHP版本:5.3.8
  • Web服務器:Apache 2.2的

我的生產環境

  • OS:Centos的5.5
  • PHP版本:5.3.12
  • 的Web服務器:nginx 1.2.1

這兩項的環境中使用標準的PHP擴展質數據庫(UNIX:http://pecl.php.net/package/dbase,贏:http://downloads.php.net/pierre/)。

我有一個dbf文件,其中一列是float(10,2)的值,可以說是26.14。當我在開發環境中讀取此文件時,它顯示正確(「26.14」),但在生產環境中執行完全相同的操作時,它只輸出「26」。代碼如下:

<?php 
$db = dbase_open($path_to_dbf, 0); 
$record_numbers = dbase_numrecords($db); 
for ($i = 1; $i <= $record_numbers; $i++) 
{ 
    $row = dbase_get_record_with_names($db, $i); 
    echo '<pre>', var_dump($row), '</pre>'; 
} 
?> 

我真的很迷惘,不知道從哪裏開始尋找解決這個問題。任何人都可以幫忙嗎?

+0

檢查庫版本。向他們展示這兩個系統。然後比較。可能有一個不同的跡象。另外檢查是否有某些配置。 – hakre

+0

正在執行'phpversion('dbase');'不輸出任何內容。有沒有其他方法來檢查庫版本? – egis

回答

1

我知道這是個老問題,但也許它會幫助別人。

也許你有一個「,」作爲分隔符,而不是「。」。

我有一個問題,這有助於:

setlocale(LC_NUMERIC, 'C');