2011-11-28 4 views
0

PHP에서 CSV를 어떻게 구문 분석합니까 (value 8 근처에 큰 따옴표가 있습니까)? 형식이 잘못된 CSV 파일 구문 분석

 
"03720108";"value 8"";"";"219";"03720108";"value";"value";"value";"";"";"";"";"";"";"value";"";"";"value";"value"; 

나는 fgetscv($pointer, 4096, ';', '"');

+3

당신은 편집 – webbiedave

+0

그래서 내가 :(옳았다 이중 따옴표에 가까운 '값이 추가 견적 악한 것이있다'로 직접 대답 – razorxan

답변

0

예로했습니다. 추가 견적을 확인하십시오.

"값 8" ";.

0

귀하의 데이터가 더 닫는 따옴표와 오프닝 인용문이 이전 라인에서 시작, 부정 것으로 보인다

+0

더 구체적으로 8'' – razorxan

+0

하나 개의 라인 거기에 내가보고 된 당신의 @ Macmade 님이 편집하기 전의 원본 버전입니다 .2 줄이있는 것 같습니다. – phatfingers

+0

내 잘못입니다. 사용하실 수 없습니다. ** t – razorxan

0

당신은 아직 할 수 있습니다. 하지만,이 문자열을 구문 분석 : 법선 ; 문자를 포함 할 요소 (있는 경우

$str = '"03720108";"value 8"";"";"219";"03720108";"value";"value";"value";"";"";"";"";"";"";"value";"";"";"value";"value";'; 

$parsed = array_map(
    function($str) { return substr($str, 1, -1); }, 
    explode(';', $str) 
); 

var_export($parsed); 
/* 
    array (
    0 => '03720108', 
    1 => 'value 8"', 
    2 => '', 
    3 => '219', 
    4 => '03720108', 
    5 => 'value', 
    6 => 'value', 
    7 => 'value', 
    8 => '', 
    9 => '', 
    10 => '', 
    11 => '', 
    12 => '', 
    13 => '', 
    14 => 'value', 
    15 => '', 
    16 => '', 
    17 => 'value', 
    18 => 'value', 
    19 => false, 
) 
*/ 

것들,하지만 조금 더 복잡 위의 코드는 한 줄만 구문 분석하면된다고 가정합니다 (비록 입력 스트림을 읽기 위해 fgets()을 사용한다면 OK입니다).). ...?