2011-04-21 7 views
1

제목이 가장 설명이 잘 안된다는 것을 알고 있지만 그것을 설명하는 더 좋은 방법은 없을 것입니다.PHP/Mysql에서 동적 CSV 표제 처리하기

는 궁극적으로 내가 뭘하고 싶은 것은 이것이다 : 나는 여러 회사에서 CSV를 통해 데이터의 가져 오기를 처리하는 시스템을 만드는 중이라서

. 당연히 각 회사의 형식은 약간 다르며 각 열/제목의 데이터 양과 다른 배열이 다릅니다.

내가 할 수있는 중 하나

  1. 신속하고 프로그램에 대한 간단하지만 추상적하지 또는 미래의 증거입니다 프로그램에 파일 형식,

  2. 또는는 "역 동성"을 제공

    하드 코드 사용자가 CSV 제목을 끌어다 놓고 들어오는 파일 형식마다 사전 설정을 저장하여 시스템에서 "파일 형식"을 구성 할 수있게합니다.

제가 2 번 옵션을 원하지만 어떻게해야합니까?

나는 태깅 스타일 시스템이 그것을 할 것이라고 추측하고있다. 그러나 어떤 충고도 인정 될 것이다.

PHP, MySQL 및 CodeIgniter 2.0.2가 도움이되고 내 앱의 모든 Zend 라이브러리에 액세스 할 수있는 경우이를 사용하고 있습니다.

+0

첫 번째 행이 열 이름으로 표시되지 않는 이유는 무엇입니까? –

+0

@Drackir가 말했듯이 - 첫 번째 행의 열 이름. 그런 다음 열 이름을 열 번호에 매핑하는 배열을 가져야합니다. 이를 사용하여 표준 데이터 세트로 다시 형식화 할 수 있습니다. – jmathai

+0

CSV의 첫 번째 행을 의미합니까? 기업이 수출을 할 때 CSV에 넣을 내용을 제어 할 수 없습니다. 그들 중 일부는 심지어 제목 행이 없을 것입니다 ... 또한, 당신은 머리글 행을 가지고, 어떻게 각 데이터 형식을 모른 채, MySQL 데이터베이스에이 데이터를 가져올까요? 예를 들어 어떤 열은 VARCHAR 등의 숫자 인 날짜 필드입니다. 감사합니다 ... 감사합니다. – George

답변

1

사용자가 앞에서 정의한 가능한 데이터 유형의 하위 집합을 제출한다고 가정하면 너무 힘들지 않아야합니다.

사용자가 데이터 형식을 선택하고 csv에서 필드 이름을 제공하는 간단한 양식을 사용하여 언급 한 템플릿을 만들 수 있습니다. 이것을 사용자와 관련된 데이터베이스 테이블에 저장하고 csv를 가져 오기 전에 템플릿을 선택하게하십시오. 헤더 행이없는 CSV가있는 고객의 경우 각 데이터 유형의 열 번호를 알려주는 약간의 변형이 있습니다.

아직 내보내기를 정의하지 않은 고객을 위해 미리 정의 된 형식을 제공하는 것이 좋습니다. 그렇게하면 자신의 형식 중 하나로 내보낼 수 있습니다.

사용자가 기본 템플릿을 정의하도록 할 수도 있습니다. 그렇게하면 항상 동일한 형식으로 데이터를 가져 오는 경우 데이터를 가져올 때마다 템플릿을 선택하지 않아도됩니다.

+0

답변으로 표시, 완전히 잊어 버렸습니다. 당신은 정확히 아무것도 자세하게 공유하지 않습니다. 그리고 당신은 크게 생각했습니다. 그러나 다른 한편으로는 이것은 최고의 (유일한) 대답입니다. 시간 내 주셔서 감사합니다 :) – George