为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
青春有我 2022-07-16 17:43:03
我正在使用以下 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 中的几行示例。7145516931171455169112222100对于这两行,字符串长度显示为 11。对于第一行是正确的,但第二行有 16 个字符。似乎对于任何超过 11 个字符的值,字符串长度显示为 11(使用 strlen 时)。下面显示了上面 2 行的我的 php 脚本。71455169311 Length: 117.14552E+16 Length: 11有什么方法可以正确获取字符串长度?这种行为的原因是什么?谢谢
查看完整描述

2 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

似乎fgetcsv可以返回整数/浮点数,而不仅仅是字符串。如果需要确切的数字,我不知道是否fgetcsv也可以将所有内容作为字符串返回,但如果只需要字符串的长度,则可以使用strlen(number_format($line[0], 0, '.', ''))(这是假设数字没有小数)。



查看完整回答
反对 回复 2022-07-16
?
墨色风雨

TA贡献1853条经验 获得超6个赞

而不是strlen()尝试使用mb_strlen().



查看完整回答
反对 回复 2022-07-16
  • 2 回答
  • 0 关注
  • 209 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号