2013-08-16 4 views
2

CSV 파일에서 정보를 가져 오는 PHP 파일이 있는데 특정 행과 열만 보여주는 테이블로 성공적으로 변환됩니다.필드를 감싸는 대신 PHP 파일에 표시된 CSV 파일의 따옴표

그러나 CSV 파일에는 따옴표로 묶인 쉼표와 공백이있는 항목이 있습니다. 내 PHP 파일은 쉼표로 인해이 두 항목을 두 개로 나누고 쉼표 대신 쉼표를 사용하여 쉼표와 공백이 포함 된 필드임을 나타냅니다.

AA,BB,"Surname, Initial",CC,DD,EE 

"성, 그리고 초기"는 결과 테이블에서 같은 필드에 있어야하지만 대신 두 개의 필드가 생성되고있다 :

는 예를 들어, CSV 파일은 다음과 같다.

저는 PHP 코드에서이 문제를 해결하고 싶습니다. CSV 파일 자체를 수정하는 것이 아닙니다. 코드는 다음과 같습니다.

echo "<meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\"/> 
     <link rel=\"stylesheet\" type=\"text/css\" href=\"test.css\">"; 
$file = 'CSV/test.csv'; 
$lines = file($file); 
if (file_exists($file)){ 
    //echo "$file exists<br/>"; 

echo '<table>';      //create the html table 
$x=2;  //define the first line to display 
$y=20;  //define the last line to display 
$line_counter=0; 
foreach ($lines as $line) {   //loop to fill your table with csv data 
    if($x<=$line_counter && $line_counter<=$y) 
    { 
    $expl = explode(",", $line);  //explode each line on "," to create the rows 
    echo "<tr>";      //create each line of your table 
    $c=0; 
    while ($c<=47) {     //loop to extract columns 2 to 47 
     if(($c % 2) == 1){    //odd rows 
     echo "<td class=\"odd\">".$expl[$c]."</td>"; 
     } 
     elseif(($c == 0)){ 
     echo "<td class=\"even\">".$expl[$c]."</td>"; 
     } 
     else{ 
     echo "<td class=\"even\">".$expl[$c]."</td>"; //even rows 
     } 
     $c++; 
    } 
    echo "</tr>"; 
    $x++; 
    } 
    $line_counter++; 
} 
echo "</table>"; 
} 
+1

왜 파일 읽기를 처리하기 위해 내장 [fgetcsv()] (http://www.php.net/manual/en/function.fgetcsv.php) 함수를 사용하지 않는 ....이 목적을 위해 특별히 작성된 것으로 여러분을위한 인용문을 처리 할 것이고 여러분의 문제는 마술처럼 사라질 것입니다. –

답변

1

내장 된 fgetcsv() 함수는 올바른 CSV 형식을 처리해야합니다. 구분 기호와 예상 견적 유형을 모두 변경할 수있는 매개 변수가 있습니다. CSV가 깨지지 않으면이 함수는 파싱을 잘 수행해야합니다. 자체 구문 분석기로 바꾸고 CSV 형식에 필요한대로 매개 변수를 조정 한 다음 결과 배열을 루프 처리하십시오.

http://www.php.net/manual/en/function.fgetcsv.php

+0

fgetcsv()를 살펴본 결과, 테이블을 표시하고 인용문을 생략 할 수 있습니다 마크,하지만 특정 행과 열을 표시 위의 코드를 결합하는 방법을 해결할 수 없습니다. 도울 수 있니? 나는 PHP에 매우 익숙하며, 초보자를 도울 수있는 튜토리얼을 통해 워크샵을 가르치거나 고맙게 생각합니다. – user2653322