【问题标题】:PHP read csv file through http requestPHP通过http请求读取csv文件
【发布时间】:2019-04-06 12:16:59
【问题描述】:

我正在制作一个 API,用户可以在其中以二进制代码向我的页面发送 CSV。
我需要读取该 CSV 并读取该 CSV 中的所有行。
在该循环中,我将每一行添加到数据库中。
我不知道该怎么做。

目前我正在使用fgetcsv,但该函数不能用于读取二进制文件。
这仅用于在 POST 中发布 CSV 文件。
我正在通过 HTTP 请求发送 CSV 文件。
我的结果如下所示:
“人 1”、“街道 4”、“test@gmail.com”、、、“佛罗里达”、“人 2”、“街道 5”、“test2@gmail.com”、、、“佛罗里达”

【问题讨论】:

  • 您能否发布几行 binary CSV 的示例,因为我不确定它是什么或如何阅读它?它是否有某种形式的分隔符,或者它是一种更固定的格式。
  • 它是固定格式,文件是通过http请求以二进制形式发送的,但我以逗号分隔的列表形式接收。我想知道有多少行通过它们的循环
  • @NigelRen 更新问题

标签: php csv binary


【解决方案1】:

要遍历其中的每一行和数据,您可以使用以下格式:

$lines = explode("\r\n", $data); // split the string by new lines
foreach($lines as $line){ // Loop over each line
    $column = explode(",", $line); // split the line in 'columns'
    $name = $column[0];
    $street = $column[1]; 
}

【讨论】:

  • 如果我没有逗号而是 "person1""street 1""test@gmail.com" 怎么办??
  • 使用 2 个双引号拆分列,如下所示:explode("\"\"", $line);确保用反斜杠转义它们。然后使用字符串替换或 substr 删除末尾和开头的双引号。
猜你喜欢
  • 1970-01-01
  • 2021-12-19
  • 2021-09-23
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多