读取过程按预期工作,但是当我尝试打印一行的长度时,它显示出一些异常行为。 这些是我的 CSV 中的几个示例行。 714551693-6ren">
gpt4 book ai didi

php - 使用 PHP 读取 CSV 文件时字符串长度不正确

转载 作者:行者123 更新时间:2023-12-04 10:47:12 25 4
gpt4 key购买 nike

我正在使用以下 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, '.', '')) (这是假设数字没有小数)。

    关于php - 使用 PHP 读取 CSV 文件时字符串长度不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59646446/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com