excel로 열고 쉼표로 구분하여 저장하십시오. 연속 된 구분자를 하나로 처리하거나하지 마십시오. 그런 다음 CSV로 다시 저장하십시오. CSV는 쉼표로 구분되어 mysql로 가져 오기가 더 쉽습니다.
편집 : "[+]"에 preg_split을 사용하는 사람은 본질적으로 내가 위에서 한 것과 같은 대답을 제공합니다.
질문은 그 다음에해야 할 일입니다.
아직 "행 유형"이 몇 개인 지 결정 했습니까? 일단 당신이 그것의 특성을 결정하고 특성을 정의했다면 그것을 통과하는 코드를 작성하는 것이 훨씬 쉬울 것입니다.
csv로 저장하면 PHP fgetcsv 함수 및 관련 함수를 사용할 수 있습니다. 각 행에 대해 유형을 확인하고 유형에 따라 조작을 수행합니다.
첫 번째 열의 데이터에 "."가 포함되어 있는지 여부에 따라 데이터 행을 나눌 수 있습니다. 여기에 파일을 반복하는 방법의 예가 있습니다.
동안 ($ 행 = fgetcsv ($ file_handle)) { (strpos ($ 행 [0], '.') === 거짓) { // // 할 다른 { } 뭔가 을 할 경우 뭔가 다른 } }
등
확인 "table
INTO INSERT", 여기에 좀 더 관찰의 "표 table_$row[0]
만들기"같은 수 또는 것 "뭔가 할"
이
귀하의 파일입니다 아르 자형 여러 파일을 함께 붙인 것처럼 여러 형식이 포함되어 있습니다."4"로 시작하는 모든 행은 4 자리로 된 회사 약어와 완전한 회사 이름을가집니다. 그 중 하나는 "caco"입니다. "caco"를 검색하면 파일 내의 여러 "표"에서 찾을 수 있습니다.
또한 "smuwtfa"(요일)가 주위에 뿌려졌습니다.
이와 같은 단서를 사용하여 각 행을 처리하는 방법의 논리를 결정하십시오.
조언 ... 음, 해당 내보내기의 데이터 형식을 알아야합니다. 또한 주소는 공백으로 구분되며 열 사이에 탭이 없습니다. 자동으로 구문 분석 할 정보가 부족한 것 같습니다. – alxx
내 생각 엔 : 너비가 고정되어 있고 처음 세 문자가 레코드 유형입니다. 모든 레코드 유형은 동일한 형식을 갖습니다. 즉, 레코드 유형 4의 모든 행은 동일한 두 개의 열을 가지며 레코드 유형 17.1은 단 하나의 열만 포함하지만 새로운 "경로 블록"을 시작하는 것처럼 보입니다. – vstm
데이터가 인라인되지 않는 형식이 잘못되었습니다. 이제 링크가 죽었으므로 질문을 맥락화하는 것이 불가능합니다. 또는 pastebin et al을 사용하십시오 ... 그냥 말입니다 .. – ftrotter