首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用PHP打印CSV文件的行?

如何用PHP打印CSV文件的行?
EN

Stack Overflow用户
提问于 2020-07-02 06:26:54
回答 1查看 36关注 0票数 0

下面是我正在使用的代码,但它并没有输出我想要的内容。

代码语言:javascript
复制
<?php
$file = fopen("ad.csv","r");

while(! feof($file))
  {
  print_r(fgetcsv($file));
  }

fclose($file);
?>

下面是它当前输出的内容:

代码语言:javascript
复制
Array ( [0] => cn [1] => mail [2] => telephonenumber [3] => uid ) Array ( [0] => [1] => [2] => [3] => ) Array ( [0] => admin [1] => [2] => [3] => ) Array ( [0] => Isaac Newton [1] => newton@ldap.forumsys.com [2] => [3] => newton ) Array ( [0] => Albert Einstein [1] => einstein@ldap.forumsys.com [2] => 314-159-2653 [3] => einstein ) Array ( [0] => Nikola Tesla [1] => tesla@ldap.forumsys.com [2] => [3] => tesla ) Array ( [0] => Galileo Galilei [1] => galieleo@ldap.forumsys.com [2] => [3] => galieleo ) Array ( [0] => Leonhard Euler [1] => euler@ldap.forumsys.com [2] => [3] => euler ) Array ( [0] => Carl Friedrich Gauss [1] => gauss@ldap.forumsys.com [2] => [3] => gauss ) Array ( [0] => Bernhard Riemann [1] => riemann@ldap.forumsys.com [2] => [3] => riemann ) Array ( [0] => Euclid [1] => euclid@ldap.forumsys.com [2] => [3] => euclid ) Array ( [0] => Mathematicians [1] => [2] => [3] => ) Array ( [0] => Scientists [1] => [2] => [3] => ) Array ( [0] => read-only-admin [1] => [2] => [3] => ) Array ( [0] => Italians [1] => [2] => [3] => ) Array ( [0] => Test [1] => [2] => [3] => test ) Array ( [0] => Chemists [1] => [2] => [3] => ) Array ( [0] => Marie Curie [1] => curie@ldap.forumsys.com [2] => [3] => curie ) Array ( [0] => Alfred Nobel [1] => nobel@ldap.forumsys.com [2] => [3] => nobel ) Array ( [0] => Robert Boyle [1] => boyle@ldap.forumsys.com [2] => 999-867-5309 [3] => boyle ) Array ( [0] => Louis Pasteur [1] => pasteur@ldap.forumsys.com [2] => 602-214-4978 [3] => pasteur ) Array ( [0] => No Group [1] => nogroup@ldap.forumsys.com [2] => [3] => nogroup ) Array ( [0] => FS Training [1] => training@forumsys.com [2] => 888-111-2222 [3] => training ) Array ( [0] => FS Training [1] => jmacy-training@forumsys.com [2] => 888-111-2222 [3] => jmacy )

换句话说,它几乎就像是将我所有的CSV数据添加到一个多维数组中……

我想要的就是像这样输出它:

代码语言:javascript
复制
cn,mail,telephonenumber,uid
,,,
admin,,,
"Isaac Newton",newton@ldap.forumsys.com,,newton
"Albert Einstein",einstein@ldap.forumsys.com,314-159-2653,einstein
"Nikola Tesla",tesla@ldap.forumsys.com,,tesla
"Galileo Galilei",galieleo@ldap.forumsys.com,,galieleo
"Leonhard Euler",euler@ldap.forumsys.com,,euler
"Carl Friedrich Gauss",gauss@ldap.forumsys.com,,gauss
"Bernhard Riemann",riemann@ldap.forumsys.com,,riemann
Euclid,euclid@ldap.forumsys.com,,euclid
Mathematicians,,,
Scientists,,,
read-only-admin,,,
Italians,,,
Test,,,test
Chemists,,,
"Marie Curie",curie@ldap.forumsys.com,,curie
"Alfred Nobel",nobel@ldap.forumsys.com,,nobel
"Robert Boyle",boyle@ldap.forumsys.com,999-867-5309,boyle
"Louis Pasteur",pasteur@ldap.forumsys.com,602-214-4978,pasteur
"No Group",nogroup@ldap.forumsys.com,,nogroup
"FS Training",training@forumsys.com,888-111-2222,training
"FS Training",jmacy-training@forumsys.com,888-111-2222,jmacy
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-02 14:55:17

How to parse a CSV file using PHP有一些有趣的建议

顺便说一句,在php 7.2中,这也是可行的:

代码语言:javascript
复制
    <?php
    $row = 1;
    if (($handle = fopen("ad.csv", "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            echo ($data[0].",".$data[1].",".$data[2].",".$data[3]."\n");
        }
        fclose($handle);
    }
    ?>

此外,.csv数据上的引号应包含所有数据,例如:

代码语言:javascript
复制
"Isaac Newton","newton@ldap.forumsys.com",,"newton"
"Albert Einstein","einstein@ldap.forumsys.com","314-159-2653","einstein"
"Nikola Tesla","tesla@ldap.forumsys.com",,"tesla"
"Galileo Galilei","galieleo@ldap.forumsys.com",,"galieleo"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62686222

复制
相关文章

相似问题

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