2014-03-28 3 views

답변

0

예, 있습니다. php://memory을 파일 출력 스트림처럼 사용할 수 있습니다. 실제로는 파일이 아닌 메모리에 씁니다.

예를 들어, CSV 형식 $rows으로 배열 $data를 변환 :

다음
$rows = array(); 
$fd = fopen('php://memory','rw'); 
foreach($data as $datum) { 
    fputcsv($fd, $datum); 
    rewind($fd); 
    $rows[] = trim(fgets($fd)); 
    rewind($fd); 
} 
fclose($fd); 

당신은 각 데이터 세트에 대해, 내가 CSV로 데이터를 기록, 내가 읽기/쓰기를 위해 메모리를 열어 볼 수 있습니다 - 그런 다음 메모리의 시작 부분으로 되감 으십시오. 그런 다음 메모리의 내용을 읽으십시오. fputcsv는 줄 바꿈으로 항상 줄을 끝내므로, 오버플로를 걱정할 필요없이 줄을 읽는 데 fgets를 사용할 수 있습니다. 개행을 포함하는 데이터를 저장하는 경우 조금 변경해야 할 수도 있습니다. fgets가 작동하지 않으므로 좀 더 정교한 검사/유효성 검사를 수행해야하며, 최대 크기는 php:://memory이며 php.ini에 정의되어 있습니다.

관련 문제