2016-06-16 2 views
0

16 6 월 16HTML 양식 필드에 배열

안녕, 만들기 나는 텍스트, 라디오 버튼, 체크 박스, 텍스트 영역 필드가있는 HTML 양식을 가지고있다. 모든 필드를 CSV 파일에 기록하고 싶습니다. 그것은 CSV 파일에 쓰고 있지만 불행히도 필드에 쉼표가 있으면 쉼표 다음의 텍스트를 다음 필드로 이동합니다.

나는 약간 연구를했고 'fputcsv'를 사용해야한다는 것을 알았습니다. 모든 예제는 데이터베이스에서 데이터를 가져오고 배열을 만드는 것입니다. 나는 'fputcsv'와 함께 사용할 수 있도록 내 양식의 데이터에서 배열을 만드는 방법을 알고 싶습니다. 아래는 내 코드 샘플입니다.

// Create file. If file has been created, open file. 
$myfile = fopen("ZZZmycsv.csv", "a") or die("Unable to open file!"); 

// Write to file. 
// Column headers 
$msg = "First Name, Last Name, Organization, Email, City, State, Comment 1, Comment 2 \n"; 

// Form variables 
$msg .= "$firstName, $lastName, $organization, $email, $city, $state, $comment1, $comment2 \n"; 

가능한 한 자세하게 답하십시오.

시간과 고려에 미리 감사드립니다.

+0

나는 구분 기호를 사용해야한다고 생각합니다! 그런 다음 데이터에 쉼표를 사용할 수 있으며 열을 끊지 않습니다. [세 번째 매개 변수 항목 확인] (http://php.net/manual/en/function.fputcsv.php#refsect1-function.fputcsv-parameters) – Dale

+1

" 배열을 만드는 방법 ..? " '$ array = [$ firstName, ... $ comment2]; ' – Steve

답변

0

가 이미 기본 이스케이프 문자 ("\ ")가" "AAA" "" "" "BBB" "" 그래서 당신이해야 할 모든은을이다 배열을 양식 입력에서 가져 와서 파일에 씁니다. 이 예에서

// Create file. If file has been created, open file. 
$myfile = fopen("ZZZmycsv.csv", "a") or die("Unable to open file!"); 

// Write to file. 
// Column headers 
$headers = array('First Name', 'Last Name', 'Organization', 'Email', 'City', 'State', 'Comment 1', 'Comment 2'); 
fputcsv($myfile, $headers); 

// Form variables 
$formArray = array($firstName, $lastName, $organization, $email, $city, $state, $comment1, $comment2); 
fputcsv($myfile, $formArray); 

내가 너무 파일에 헤더를 썼다, 그러나 당신이하면 fopen을 사용하는 경우 (..., "A"); 이것은 의미가 없으므로 "w"가을 매개 변수로 사용하고자 할 수 있습니다 (파일에 둘 이상의 행을 저장하려는 경우가 아니라 각 행 앞에 헤더를 쓰지 않을 경우)

희망이 도움이되었습니다. 건배

+0

캐쉬 비 (Cashbee), 도움에 감사드립니다 - 나는 당신의 제안을 시도 할 것입니다. 하나의 질문 : 배열에서, 나는 총 18 변수를 갖습니다. 18 개의 변수를 하나의 배열 선으로 모두 나누는 대신에 가장 좋은 방법은 무엇입니까? – alex

+0

귀하의 제안이 완벽하게 작동했습니다! – alex

+0

캐시비, 당신의 제안은 완벽하게 작동했습니다! 참고로 Dreamweaver와 모든 변수를 다음 줄에 사용했습니다. 나는 3 개의 줄에 18 개의 변수가있는 하나의 array()를 가지고있다. 더 좋은 방법이 있다면 조언을 구하십시오. 그러나 그것이 작동한다면 왜 바퀴를 다시 디자인해야할까요? 열 머리글을 정적으로 만들 수 있습니까? 내 해결 방법은 해당 필드에 헤더가있는 CSV 파일을 업로드하는 것입니다. 헤더에 대해 작성한 두 줄의 코드를 삭제했습니다. 정말 감사드립니다. – alex

0

PHP : 그

http://php.net/manual/en/function.fputcsv.php

편집하는 기능이있다 : PHP는 문서를 복제하려면 :

<?php 

$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'), 
    array('123', '456', '789'), 
    array('"aaa"', '"bbb"') 
); 

$fp = fopen('file.csv', 'w'); 

foreach ($list as $fields) { 
    fputcsv($fp, $fields); 
} 

fclose($fp); 
?> 

위의 예는 쓸 것을 file.csv하려면 다음

aaa, bbb, ccc, dddd
123,456,789
"는 fputcsv를 사용하는 경우

관련 문제