2016-04-28 19 views
1

csvのような文字列を解析したいので、csvをエミュレートしてテストケースにアサートすることができます。php://メモリIOストリームとfgetcsv()

// 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 

答えて

1
  1. \r\nを外し、
  2. あなたがループ二回ポインタを移動する必要がない、$parsed[] = $data
への変更