2014-05-21 2 views
0

CSV 파일에서 캐리지 리턴을 제거하는 PHP 파일을 작성하려고합니다. 먼저 열 1에있는 캐리지 리턴이 포함 된 원본 CSV 파일을 읽으려고합니다. 그런 다음 캐리지 리턴을 제거하거나 제거한 다음 수정 된 문자열을 새 CSV 파일에 씁니다. 하지만 구체적으로 그렇게하는 방법에 문제가 있습니다. 이 프로그램에서 오류가 발생했으며이 코드의 문제점이 확실하지 않습니다. 여기에 무엇이 누락 되었습니까? 어떤 제안? 당신은 파일에서 아무것도 읽을되지 않습니다PHP에서 CSV 파일의 캐리지 리턴 제거하기

<?php 
$file_read = fopen('testCarriageFile.csv', "r"); 
$file_write = fopen('testCarriageFile2.csv', "w+"); 
while(!feof($file_read)) { 
    $file_trim = trim($file_read, "\r"); 
    fwrite($file_write, $file_trim); 
} 
fclose($file_read); 
fclose($file_write); 
?> 
+0

당신은 실제로 읽는되지 않은 사용에 대해 확실하지 않은 경우 확실하지 파일 ... 자책과 트림 전에, 너는 fgets 나 fread와 같은 것을 필요로한다. 또한 var는 파일 핸들이 아닌 "트리밍"을하기 위해 전달해야합니다. – DragonYen

답변

1

:

여기에 내 원래의 코드입니다. CSV 파일의 경우 fgets 또는 fgetcsv을 사용해야합니다. 이 시도 :

while(!feof($file_read)) { 
    $file_line = fgets($file_read); 
    $file_trim = trim($file_line, "\r"); 
    fwrite($file_write, $file_trim); 
} 

왜 당신은 그냥 CSV 파일을 읽을 수 fgetcsv를 사용할 수있을 때 캐리지 리턴을 제거하고 라인 엔딩이 ini_set("auto_detect_line_endings", true);

+0

+1 ['fgetcsv()'] (http://www.php.net/manual/en/function.fgetcsv.php). CSV를 쓰고있는 것이 제대로 문자열을 이스케이프/둘러싸 지 않고 CSV를 읽고있는 것이 이스케이프/인클로저를 고려하지 않기 때문에 OP가 * 줄 바꿈을 포함하는 필드에서 데이터를 수정하려고한다는 느낌이 들게됩니다. – Sammitch