首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP7.1.29-字符串中的数字行为错误

PHP7.1.29-字符串中的数字行为错误
EN

Stack Overflow用户
提问于 2019-05-10 08:25:42
回答 1查看 40关注 0票数 0

我正在用两列(ID,DATE)读取CSV文件。我想要身份证,用它做些什么,但我得到的是真的很奇怪。对于第一行,我得到"3“,在转换成整数后,得到0。当然,我已经打印了值,"3“的长度是4. WTF?我只是累了还是出了什么问题?第二行按预期工作。

CSV文件:

代码语言:javascript
复制
3;2017-11-24 08:30:00+01
2;2017-10-20 09:00:00+02

代码:

代码语言:javascript
复制
if (($handle = fopen(__DIR__ . "/myfile.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
        var_dump($data);
        var_dump($data[0]);
        var_dump(mb_strlen($data[0]));
        var_dump(gettype($data[0]));
        var_dump((int) $data[0]);
    }
    fclose($handle);
}

输出:

代码语言:javascript
复制
array(2) {
  [0] =>
  string(4) "3"
  [1] =>
  string(22) "2017-11-24 08:30:00+01"
}
string(4) "3"
int(2)
string(6) "string"
int(0)
---------------------------
array(2) {
  [0] =>
  string(1) "2"
  [1] =>
  string(22) "2017-10-20 09:00:00+02"
}
string(1) "2"
int(1)
string(6) "string"
int(2)

编辑:

当我改变行的顺序时,它总是只做第一行。BOM?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-10 08:58:01

好的,问题是编码。在从ISO-8859-1转换为UTF-8后,工作正常.仍然奇怪的是,PHP将数组键定义为长度为4的"3“,并在转换到int之后返回0。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56073559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档