0


PHPがdbase(dbf)ファイルを読み取るのに奇妙な問題があります。

私の開発環境

  • 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 dbase拡張機能を使用します(unix: http: //pecl.php.net/package/dbase、win:http: //downloads.php.net/pierre/)。

1つの列が値を持つfloat(10,2)であるdbfファイルがあります。たとえば、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>'; 
}
?>

私は本当に混乱していて、この問題の解決策をどこから探し始めるのかわかりません。誰か助けてもらえますか?

4

1 に答える 1

1

これは古い質問であることは知っていますが、誰かの助けになるかもしれません。

おそらく、区切り文字として「.」ではなく「,」を使用している可能性があります。

私はその問題を抱えており、これが役立ちます:

setlocale(LC_NUMERIC, 'C');
于 2014-04-29T10:50:19.133 に答える