php - 使用 PHP 读取 CSV 文件时字符串长度不正确
问题描述
我正在使用以下 php 代码逐行读取 CSV 文件。
<?php
$temp=0;
$s="http://localhost/BulkMessage/Uploads/Number_Files/f7aa248e5fce52411723_CSV_7xxxxxxxx.csv";
try
{
$file = fopen($s, 'r');
} catch (Exception $ex) {
$_SESSION['error']="Can't read the file";
header('Location: '.'../view_sending_rich_message.php');
}
while (($line = fgetcsv($file)) !== FALSE)
{
echo $line[0]." Length: ".strlen($line[0])."<br>";
}
?>
读取过程按预期工作,但是当我尝试打印一行的长度时,它显示出一些异常行为。这些是我的 CSV 中的几行示例。
- 71455169311
- 71455169112222100
对于这两行,字符串长度显示为 11。对于第一行是正确的,但第二行有 16 个字符。似乎对于任何超过 11 个字符的值,字符串长度显示为 11(使用 strlen 时)。下面显示了上面 2 行的我的 php 脚本。
71455169311 Length: 11
7.14552E+16 Length: 11
有什么方法可以正确获取字符串长度?这种行为的原因是什么?谢谢
解决方案
似乎fgetcsv
可以返回整数/浮点数,而不仅仅是字符串。如果需要确切的数字,我不知道是否fgetcsv
也可以将所有内容作为字符串返回,但如果只需要字符串的长度,则可以使用strlen(number_format($line[0], 0, '.', ''))
(这是假设数字没有小数)。
推荐阅读
- javascript - ReactJS 中 Material ui 的自动完成问题
- javascript - 根据多个属性过滤项目
- windows - 无法为 win 安装 automake
- ios - 将应用程序上传到 App Store Connect 时出错
- python-3.x - 以python方式将多个裁剪的PDF图像添加到同一个PDF页面中
- python - 使用条形图在 Matplotlib 中的 x 轴上显示刻度
- visual-studio - 在 Visual Studio 中构建时如何使用所有内核?
- javascript - 显示来自 .Js 文件中指定的路径并链接到 React Native 中的 .JSON 文件的图像
- node.js - 从 REST API 获取在 Azure VM 中不起作用
- generics - 如何在 Haxe 泛型类的类型之间使用运算符?