【问题标题】:PHP: "non well formed numeric value encountered"PHP:“遇到格式不正确的数值”
【发布时间】:2010-11-19 14:00:06
【问题描述】:
<?php  
function aum($x) {
$contents = $_FILES['userfile']['tmp_name'];
$contents = file("$contents");
$aum = $contents[$x][13].$contents[$x][14].$contents[$x][15].$contents[$x][16].$contents[$x][17].$contents[$x][18].$contents[$x][19].$contents[$x][20].$contents[$x][21].$contents[$x][22].$contents[$x][23];
$faum = money_format('%(#1n',$aum)."\n";    
return $faum;
}
?>

注意:格式不正确的数字 遇到的值 ./includes.php 第 28 行


你好,

我收到了上面的错误。第 28 行是: $faum = money_format('%(#1n',$aum)."\n";
我有三个问题:

  1. 为什么我会收到此错误通知,我应该如何解决?
  2. 有没有更好的方法将具有非统一逗号分隔的 CSV 文本文件上传到 HTML 表格中? “非统一”逗号分隔是指:KEY DATA,DATA,,,$aum DATA,,,,,,DATA,etc.如您所见,我使用 file() 函数派生了 $aum。然后我从每行开头的右侧开始计算字符数,以获得与 $aum DATA 对应的 fixed 字符数。 $x 变量对应于文件中的行号。然后我可以返回每行 $x 的每个 $aum。我是 PHP 新手,想知道是否有更聪明的方法来做到这一点。

感谢您分享的任何提示/建议。

谢谢,

【问题讨论】:

  • 顺便说一句:你可以使用 $aum = substr($contents[$x], 13, 11) 甚至php.net/fgetcsv

标签: php


【解决方案1】:

对于 CSV 解析,手动方法是使用爆炸。我试试这个sn-p的代码

$string = "a,,b";
$result = explode(",", $string);
echo "<pre>".print_r($result, true)."</pre>";

我得到的输出是:

Array
(
    [0] => a
    [1] => 
    [2] => b
)

【讨论】:

    【解决方案2】:

    对于第二个问题,fgetcsv 是您从 CSV 文件中获取数据的朋友

    http://ee.php.net/fgetcsv

    【讨论】:

      【解决方案3】:

      您需要查看 $aum,因为它可能无法格式化为数字。

      流行音乐

      echo $aum;
      echo floatval($aum);
      

      在错误之前看看你得到了什么。如果您要获取前导数据或尾随数据,您可能需要更改查看的位置。

      【讨论】:

      • 谢谢,这回答了我的第一个问题。
      猜你喜欢
      • 2013-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      • 2012-07-28
      • 2014-09-18
      相关资源
      最近更新 更多