【问题标题】:php://memory IO stream and fgetcsv()php://memory IO 流和 fgetcsv()
【发布时间】:2016-08-22 23:16:35
【问题描述】:

我想解析类似 csv 的字符串,以便模拟 csv 并将其断言到测试用例中。

// init CSV-like string
$str = <<<EOD
    1,john\r\n
    2,smith\r\n
EOD;

// Open file Handler, puts the CSV-like string, rewind the file pointer
$fp = fopen('php://memory','r+');
fputs($fp,$str);
rewind($fp);

// Parse the CSV-like string
$parsed = [];
while (($data = fgetcsv($fp, 2048)) !== FALSE) {
    $parsed[] = fgetcsv($fp);
}

var_dump($parsed);

但它不会解析成数组。这是输出:

array (size=2)
  0 => 
    array (size=1)
      0 => null
  1 => boolean false

【问题讨论】:

    标签: php io fgetcsv


    【解决方案1】:
    1. 删除\r\n,不需要
    2. 您每次循环移动指针两次,更改为$parsed[] = $data

    【讨论】:

      【解决方案2】:

      ...代码很好,但是,@Verbatim 有两次 fgetcsv()。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-01
        • 2012-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多