我想解析类似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
- 卸下
'r'n
,不需要 - 每个循环移动指针两次,更改为
$parsed[] = $data
。。。代码很好,但是@Verbatim有两次fgetcsv()。