将 CSV 转换为 PHP 数组 - 结束行 (CR LF) 问题

2023-12-05

我正在使用下面的代码将 csv 文件转换为数组。但是,问题是行的末尾是CR LF,并且未检测到,因此数组的偏移量错误。 CR LF 被忽略,其周围的“单元格”被合并。

我如何重写代码来正确检测该行结尾并拆分数组?或者,是否有更好的方法将 csv 转换为数组?

这里有一些类似的问题,但我还没有找到这个问题的解决方案。

Thanks.

$fileName ='test.csv';   
$csvData = file_get_contents($fileName); 
$csvNumColumns = 11; 
$csvDelim = ";"; 
$data = array_chunk(str_getcsv($csvData, $csvDelim), $csvNumColumns); 

print_r($data);

你有没有尝试过使用fgetcsv()?完整信息php.net.

来自 php.net 的示例用法

<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 CSV 转换为 PHP 数组 - 结束行 (CR LF) 问题 的相关文章

  • 很好地阻止了齿轮工人

    我有许多 Gearman 工作人员不断运行 保存用户页面浏览记录等内容 偶尔 我会更新 Gearman 工作人员使用的 PHP 代码 为了让工作人员切换到新代码 我杀死并重新启动了工作人员的 PHP 进程 有什么更好的方法来做到这一点 据推
  • PDO::commit() 成功或失败

    The PHP PDO 提交 http www php net manual en pdo commit php文档指出该方法成功时返回 TRUE 失败时返回 FALSE 这是指beginTransaction 和commit 之间的语句执
  • 番石榴表到 CSV

    我正在尝试将 Guava 表导出到 CSV 下面的代码有效 但它跳过了我也想在输出中看到的第一列 你能提出什么建议吗 编辑 显然使用values and keySet 单独工作 final RowSortedTable
  • 如何将自定义类型数组传递给 Postgres 函数

    我有一个自定义类型 CREATE TYPE mytype as id uuid amount numeric 13 4 我想将它传递给具有以下签名的函数 CREATE FUNCTION myschema myfunction id uuid
  • PMA 4.5.2.0 file_exists():open_basedir 限制生效

    从 PPA 在我的 Ubuntu 服务器上安装 phpMyAdmin 后 https launchpad net nijel archive ubuntu phpmyadmin https launchpad net nijel archi
  • 为什么当尝试使用 $this->data 访问 CakePHP 时,密码字段为空?

    我正在实现一个身份验证组件 这是我的注册页面 create User array action gt login echo form gt input primary email array size gt 32 echo form gt
  • 基本表创建 fpdf

    我找不到使用 fpdf 制作表格并从 mysql 数据库获取数据的合适教程 我只是想知道如何创建一个 我在网上尝试示例时遇到了很多错误 例如 我有 名字 中间名 姓氏 年龄 和 电子邮件 列 如何使用 fpdf 创建表格并回显数据库中的条目
  • PHP 的 PDO 可以限制为单个查询吗?

    PHP 的 PDO 允许通过 query 方法或作为准备好的语句同时执行多个查询 以下两个示例均有效 Two SQL queries query SELECT FROM table DROP table Execute via query
  • 如何在无法重启的服务器(Apache)上使用gettext?

    我在服务器故障上问了这个问题 https serverfault com questions 104224 how do you use gettext on server apache you cant restart但我没有得到任何回应
  • 根据通过 AJAX 请求的用户输入重绘 google 图表

    我有一个谷歌图表从我的数据库中提取数据 它可以按我想要的方式工作 根据 URL 中的 get 请求 它从所选表中提取数据 我想根据下拉菜单中选定的表通过 ajax 更新此图表 我无法突破的部分是通过 ajax 获取数据响应 我认为下面的代码
  • 如何从控制器访问 Zend Framework 应用程序的配置?

    我有一个基于 Zend 框架的应用程序快速开始 http framework zend com docs quickstart setup 我已经让演示工作起来 现在正在实例化一个新的模型类来完成一些实际工作 在我的控制器中 我想将配置参数
  • 如何在 PHP 数组中的另一个已知(通过键或指针)元素之后有效地插入元素?

    给定一个数组 a array abc 123 k1 gt v1 k2 gt v2 78 tt k3 gt v3 当其内部指针指向其元素之一时 如何在当前元素之后插入元素 如何在键已知元素 例如 k1 之后插入元素 表现护理 您可以通过使用拆
  • PHP mkdir() 和 fopen() 不起作用 - 权限问题? umask问题?

    以下 PHP 脚本无法创建目录 它也将无法创建文件 当目录已经存在时 ini set error reporting E ALL define ABSPATH SERVER DOCUMENT ROOT echo ABSPATH br br
  • 使用 Java 在浏览器中下载 CSV 文件

    我正在尝试在 Web 应用程序上添加一个按钮 单击该按钮会下载一个 CSV 文件 该文件很小 大小仅约 4KB 我已经制作了按钮并附加了一个侦听器 文件也准备好了 我现在唯一需要做的就是创建单击按钮时下载 csv 文件的实际事件 假设 fi
  • Twig:选择某些块并渲染它们

    我正在将 twig 模板引擎集成到 PHP 应用程序中 特别是 我想使用 twig 引擎来渲染表单 了解了 symfony2 如何使用 twig 渲染表单小部件后 他们有一个巨大的模板文件 其中包含所有小部件 如下所示 block pass
  • 从数据库 MYSQL 和 Codeigniter 获取信息

    如果你们需要其他信息 上一个问题就在这里 从数据库中获取信息 https stackoverflow com questions 13336744 fetching information from the database 另一个更新 尽
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct
  • PHP 时间间隔

    我正在寻找一个看起来应该非常简单的解决方案 但似乎我不能在这里找到任何好的答案 而且我自己似乎无法让它发挥作用 我正在寻找的是设置开始时间 结束时间 然后迭代给定时间间隔之间的一组时间 例如 上午 9 00 下午 5 00 是开始时间 这些
  • PHP 文件服务脚本:下载不可靠?

    这篇文章最初是关于 ServerFault 的一个问题 https serverfault com questions 131156 user receiving partial downloads https serverfault co
  • 如何获取 URL 中未知的 $_GET 值的数组?

    我正在使用一个在线购物车 它接受订购的商品并通过 URL 将其唯一 ID 传递到 process php 页面 所以 URL 看起来像这样 process php code 1 231 code 2 532 code 3 342 Anoth

随机推荐

  • 创建在插入时引发异常的触发器

    我的寒假大学任务很少 其中之一就是在桌子上创建触发器 PERSON ID Name Surname Age 触发器应该在用户插入具有无效 ID 的行时通知用户 有效性标准是 ID 长度为 11 位 我尝试写这样的解决方案 CREATE OR
  • 在 JavaScript 中将 ObjectID (Mongodb) 转换为字符串

    我想在 JavaScript 中将 ObjectID Mongodb 转换为字符串 当我从 MongoDB 获取对象时 它就像一个对象一样有 时间戳 秒 公司 机器 我无法转换为字符串 尝试这个 mongo shell objectId s
  • 计算 Spotfire 中特定行的同一列的差异

    我在 Spotfire 中使用计算列进行行差异计算时遇到问题 我想知道是否可以创建一个计算列来计算当前行与具有不同属性的下一行之间的差异 示例表可能是这样的 结果可能是这样的 基本行是 When type 1 则计算其电流之差value及其
  • Google Drive API V3 Javascript - 创建包含内容的文件

    这个问题之前已经被问过 但答案是使用 API V2 谷歌文档没有阐明如何使用 javascript 客户端代码创建包含其内容的文件 我尝试使用 Node 下列出的代码 但是 它只创建文件 不插入任何内容 这是我的代码 let fileMet
  • 子图中的 networkx 正在部分绘制轴框架之外的节点

    当我在子图中绘制 networkx 图时 一些节点在轴的框架中被部分切断 我已经尝试过使用所有不同类型的图表和布局 这始终是一个问题 它总是切断我的节点 就好像 networkx 在比实际更大的轴上绘制图表 这是一个最小的例子 plt su
  • Onpaint 事件(无效)在一段时间正常运行(运行时)后改变执行顺序

    我有 3 个数据图 它们是通过其绘制事件绘制的 当我需要将数据插入到图表中时 我调用控件 invalidate 命令 第一个控件的绘制事件实际上为其他 2 个图形创建了一个位图缓冲区 以避免重复长循环 因此无效命令按特定顺序排列 1 2 3
  • 返回 SQL 中列上所有可能的值组合

    如何返回 2 列中所有值组合的列表 以便它们成为 T SQL 中的新行 e g Col1 Col2 1 2 1 4 1 5 并将其转化为所有组合 1 2 1 4 1 5 2 4 2 5 4 5 假设至少是 SQL 2005CTE with
  • 在表单提交中实现 jQuery 确认模式?

    我正在使用 jQuery 模式确认 如下所示 function dialog confirm dialog resizable false height 190 width 330 modal true buttons Yes functi
  • 使用 MSI 连接 Azure SQL Server - Django

    我已使用以下命令成功连接 Azure SQL ServerAccessToken in the pyodbc 这里我没有使用username or password连接数据库 相反 我用了attrs before通行证token 这里我自动
  • 如何按文件拆分每个提交?

    我知道如何使用手动拆分提交git rebase i 但是如何按文件自动拆分分支中的每个提交 例如 提交A修改了3个文件 f1 f2和f3 拆分后 有 3 个提交 A f1 A f2 和 A f3 我想这样做是为了使主要重写变得更容易 因为我
  • 注入名称中带有点的工厂

    我需要在 Jasmine 中使用 angularjs 模拟注入方法来注入名称中带有点的服务 我尝试添加字符串标识符 但注入方法似乎不支持此操作 这不可能 beforeEach inject rootScope MyApp Factories
  • Android volley 自签名 HTTPS 信任锚未找到证书路径

    我是安卓新手 这个问题已经被问过很多次了 但我已经浏览了这里几乎所有的问题 我试图在 Node Js 服务器上使用自签名证书 使用express 并在 android 上使用 Volley 使用 http blog applegrew co
  • 如何在子活动中获取父活动的名称

    我如何获取子活动中父活动的名称 我有两项活动可以开始同一项活动 为了更好地理解 我有活动一 二 三 从活动一我可以开始活动三 从活动二我可以开始活动三 现在我有一个问题 我如何进入活动三 父活动的名称 因此 当我从活动一开始活动三时 我如何
  • ASP定时器控件正在刷新整个页面?

    我有一个 ASP 计时器控件 应该每三分钟运行一次 尽管我将计时器控件保留在更新面板中 但它每次运行时都会刷新整个页面 有没有只刷新页面的特定部分 而不刷新整个页面 div div
  • 如何在反应组件状态下修改对象内的数组

    我的应用程序中有以下状态 const activeChats setActiveChats useState id 1 name Luciana Gutierrez role HR Manager avatar avatar2 messag
  • 如何在Python中进行无限求和

    我正在从 Maple 转向 python 进行数学编程 作为其中的一部分 我试图找出什么是正确的工具来执行无限的数字求和 我想进行数值计算 例如 sum exp x 2 x 无穷大 无穷大 在 Maple 中这只是 evalf sum ex
  • 继承和扩展方法

    考虑这个简单的代码 public void Main var d new Derived test d public void test Base parameter parameter Validate public class Base
  • 使用 RequireJS 设置默认 API url 的主干集合

    如何为 Backbone 中集合和模型的所有请求设置默认 url 服务器 示例集合 define backbone models communityModel function Backbone CommunityModel return
  • 为什么不能使用指针的指针作为参数来声明接收数组指针的函数

    我有一个 c 函数接收数组指针作为其一个参数 由于传递的数组实际上是其第一个元素的指针 因此数组的指针应该是指针的指针 int arr 0 1 2 3 int main receiveArray arr receiveArrayPtr ar
  • 将 CSV 转换为 PHP 数组 - 结束行 (CR LF) 问题

    我正在使用下面的代码将 csv 文件转换为数组 但是 问题是行的末尾是CR LF 并且未检测到 因此数组的偏移量错误 CR LF 被忽略 其周围的 单元格 被合并 我如何重写代码来正确检测该行结尾并拆分数组 或者 是否有更好的方法将 csv