2014-07-07 3 views
0

이상한 형식의 파일이 있는데 PHP로 구문 분석해야합니다. 필드 구분 기호로 ^을 사용하고 줄 끝 문자로 ~을 사용합니다. 대부분의 데이터를 얻으려면 $delimiter 매개 변수를 fgetcsv에서 ^으로 쉽게 설정할 수 있습니다. fgetcsv은 매개 변수로 EOL 문자를 허용하지 않으므로 EOL 문자를 존중하지 않고 줄 바꿈에 따라 행을 읽습니다.PHP fgetcsv와 행 끝 문자

이 문제를 해결할 방법이 있습니까? 가능한 몇 가지 어설픈 표준 기능이 있는지

$csv = file_get_contents('/path/to/file.csv'); 
$csv = str_replace('~','\n',$csv); 
$csv = str_getcsv($csv, '^'); 
+0

이상한 형식의 데이터의 예가 있습니까? – ArtisticPhoenix

답변

1

그리운 PHP, 사람들이 직접 물건을 수행하는 방법을 잊지 :

+0

@ Niels - 아주 멋지다! 함수가 가치가있는 것보다 더 많은 문제가 될 수 있다는 것을 상기시켜 주셔서 감사드립니다. – user101289

+0

파일의 크기가 얼마나 큰가요? – ArtisticPhoenix

0

그런 다음 str_getcsv를 사용 \n~을 대체 파일을 읽을 수

$lines = explode('~', file_get_contents($pathToMyFile)); 
foreach($lines as $line) 
{ 
    $values = explode('^', $line); 
} 

탈출 전략에 따라 (^ 또는 ~이 발생하는 경우) 약간 조정해야합니다.