program story

fgetcsv가 mac 형식의 csv 파일로 끝나는 줄을 읽지 못합니다. 더 나은 솔루션이 있습니까?

inputbox 2020. 12. 2. 21:04
반응형

fgetcsv가 mac 형식의 csv 파일로 끝나는 줄을 읽지 못합니다. 더 나은 솔루션이 있습니까?


fgetcsv 함수와 함께 PHP를 사용하여 csv 파일을 구문 분석했습니다. 한 줄의 모든 콘텐츠를 구문 분석 한 후 나중에 csv에 "\ r"로 carraige return이 포함되어 있음을 발견했습니다. 나는 보았다-이전에 PHP 버그로보고되었습니다. 나는 PHP 런타임 구성을 설정하여 이것을 해결했습니다.

ini_set("auto_detect_line_endings", "1");

더 이상 해결책이 있습니까 아니면 이것이 올바른 방법입니까?

감사


설정 auto_detect_line_endingsPHP 문서 에서 명시 적으로 권장 합니다 .

그러나 \r2010 년에 행을 구분하려는 이유를 알 수 없습니다 . 가능하면 UNIX 스타일로 변환하십시오 \n.


\r 줄 끝은 CSV 파일로 저장할 때 Microsoft Excel에서 생성되므로 Excel 스프레드 시트로 시작하는 경우에는 그다지 해결되지 않습니다.

사용하여 auto_detect_line_endings작품의 벌금을, 또는 당신과 라인 엔딩을 정상화 할 수 있습니다preg_replace("/\r\n|\n\r|\n|\r/", "\n", $subject);

참고 URL : https://stackoverflow.com/questions/4541749/fgetcsv-fails-to-read-line-ending-in-mac-formatted-csv-file-any-better-solution

반응형