2014-09-17 3 views
-1

CSV 파일을 만들고 있는데 각 절차를 마친 후에 새로운 라인을 만들어야합니다. 표준 \ n \ r이 작동하지 않습니다.PHP의 새 라인

코드는 외모와 같은 :

while ($resultD=mysql_fetch_assoc($queryDown)) 
     { 
      $csv.= $resultD["first_name"].' , '.$resultD["last_name"].' , '.$resultD["login"].' , '.$resultD["password"].'\n\r'; 
     } 
     $filename= "export.csv"; 
     $theFile=fopen($filename,"w"); 
     fwrite($theFile, $csv); 
+2

[ '\ n 개의 \ r에'또는 "\ r \ n"에 약간의 차이가 있습니다.)] (https://eval.in/194725) –

+1

아마도 ['fputcsv()'] (http://php.net/fputcsv) 및 관련 함수 CSV로 수동으로 작업하는 대신 사용자에게 도움이됩니다. – Wiseguy

답변

4

당신은 할 수 사용 중 하나

$csv .= '...' . "\r\n"; 

또는

$csv .= '...' . PHP_EOL; 

또는 fputcsv에 모습을 제공

가 쉽게 작동 얻을 : http://php.net/manual/en/function.fputcsv.php

+0

PHP_EOL은 보스처럼 작동합니다. 고맙습니다 – Mego

0
$csv.= $resultD["first_name"].' , '.$resultD["last_name"].' , '.$resultD["login"].' , '.$resultD["password"]."\n"; 
+4

설명을 포함하면 코드 전용 답변보다 훨씬 유용합니다. – Wiseguy

+0

예를 통해 학습 - 정말 좋은 방법 – Daimos

+2

예제는 유용하지만 설명하는 것을 실례로 보여줍니다. 코드 스 니펫만으로는 다른 점이나 작동하는 것이 즉시 명백하지 않습니다. – Wiseguy

6

사용 "\r\n", 대신 '\n\r'.

"" 이스케이프 시퀀스 \r\n을 인식하려면 큰 따옴표가 필요합니다. 작은 따옴표로 묶지 않습니다.

편집 마이클이 언급 한 바와 같이

, 당신은 또한 PHP_EOL 다시 대신 '\n\r'를 사용할 수 있습니다.

이렇게하면 여러 플랫폼에서 호환되는 줄 바꿈 문자가 생성됩니다. PHP 문서에서


strings에 :

: 작은 따옴표로 둘러싸인 문자열에서 발생할 때 인용 더블과 히어 닥 문법, 변수와 달리하는 특수 문자 이스케이프 시퀀스는 확장되지 않습니다 .

+2

플랫폼 독립적 인 방식으로 처리하는'PHP_EOL'이 있습니다. stackoverflow 질문 [PHP 상수 "PHP_EOL"은 언제 사용합니까?] (http://stackoverflow.com/questions/128560/when-do-i) -use-the-php-constant-php-eol). –