【发布时间】:2017-06-23 08:19:55
【问题描述】:
我正在使用 PHP 读取 CSV 文件,我获得了每一行的所有值,但某些具有长数据的列显示类似 9.21008E+15
我不知道如何获得完整的价值,这应该是9210080000000000
if (($handle = fopen("Test.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0, ",")) !== FALSE) {
$num = count($data);
$tb_row = "";
for ($c=0; $c < $num; $c++) {
$tb_row .= $data[$c].",";
}
$new_row = substr($tb_row, 0, -1);//removing the comma at the end of line...
//explode and assign values then insert
$each_col = explode(',', $new_row);
$Device_state = $each_col[0];
$udid = $each_col[8];
$imsi = $each_col[9];
$imei = $each_col[10];
echo "$imsi || $imei"."<br />";
}
}
【问题讨论】:
-
不在 Excel 中打开?
-
PHP 没有做任何事情。已经像 E+15 一样存储在 CSV 中的值可能是您将其打开到 excel 中并且 excel 自动替换为 E+15 尝试将该列转换为 Excel 中的文本。
-
该脚本中到底发生了什么废话? fgetcsv 将一行的列作为数组获取。从那里,您创建一个字符串,在其中用逗号分隔每个值 - 然后再次在逗号处爆炸......这不仅看起来相当多余,而且它可能会导致列值本身可能包含的错误列分隔符。
-
@CBroe 不会有任何逗号分隔符,所以它完全安全
-
好的,那么这只是“安全”的废话。
标签: php csv import-csv