2012-06-27 9 views
1

내 코드는 PHP의 fputcsv 함수를 사용하여 txt 파일을 생성합니다.PHP로 파이프로 구분 된 파일 생성

구분 기호로 '|'을 사용하려고합니다.

$query = mysql_query("SELECT email, emailSource FROM session WHERE is_complete='1' ORDER by sessionid ASC") 

$filename= 'here.txt'; 

$fp = fopen($filename,'w'); 


fputcsv($fp, array('Email address', 'Email Source')); 

if(mysql_numrows($query) > 0) { 

    while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) { 
      fputcsv($fp, array_values($row)); 
    } 
} 


fclose($fp); 
$contents = file_get_contents($filename); 
$contents = str_replace(",", "|", $contents); 
file_put_contents($filename, $contents); 

내가 얻은 결과는 별도의 줄에 값을 표시하는 대신 한 줄에 표시되며 헤더 주위에도 ""이 표시됩니다. 대신이의

"Email address"|"Email Source"|[email protected]|hi| 

:

Email address|Email Source| 

[email protected]|hi| 

누군가가 내가 뭘 잘못 말해 줄 수주십시오. 내가 fputcsv를 사용하고 txt 파일에 저장했기 때문입니까?

+3

을 사용하십시오. fputcsv()를 사용하여 | 구분 기호로 사용 하시겠습니까? –

+1

fputcsv는 각 줄의 끝에 줄 바꿈을 추가합니다. 그 줄이 없다고 확신합니까? –

+0

또한 콘텐츠를 넣기 전에 $ fp 파일 처리기를 닫습니다 (위의 주석을 참조하십시오). –

답변

4

str_replace/file_get_contents/file_put_contents 블록을 제거하십시오. fputcsv($fp, array('...')) 대신 str_replace()를 사용하는 대신 fputcsv($fp, array('...'), '|');

+0

David 님, 감사합니다. 그러나 주된 오류는 여전히 헤더에 ""표시되어 있습니다. – user875139

+0

그래서 fputcsv의 네 번째 매개 변수를 ''로 설정하십시오. 예 : fputcsv ($ fp, array ('...'), '|', ''); – Lusitanian

+0

그것은 인클로저 매개 변수입니다. – Lusitanian