2014-11-10 1 views
0

이 CSV 파일은 그림과 동일한 방식으로 표시하지만 PHP에서는 표시합니다. 지금은 "A"아래에있는 경우 모두 표시하는 방법을 알고 있습니다. 하지만 이제는 더 많은 셀을 표시하는 방법에 대해 고민하고 있습니다.테이블에 PHP CSV가 표시됩니다.

<?php 
echo "<table border='1'>"; 
if (($handle = fopen("top10.csv", "r")) !== FALSE) { 
    $data = fgetcsv($handle, 0, ","); 
    while (($data = fgetcsv($handle, 0, ",")) !== FALSE) { 
     echo "<tr>"; 
     $num = count($data); 
     for ($i=0; $i < $num; $i++) { 
      echo"<td>" . $data[$i] . "<br /> </td>"; 
     } 
     echo "</tr>"; 
    } 
    fclose($handle); 
} 
?> 

이렇게하면 2 행으로 표시됩니다.

이미지 :

enter image description here

결과 지금은 :

+0

는 왜 휴식 태그를 가하고 있습니다 테이블 셀 안쪽에? –

+3

이 코드는 어떻게 작동하지 않습니까? 나는 csv와 같은 행/셀을 가진 테이블을 뱉지 않을 이유가 전혀 없다. –

+0

제이 블랜차드, 안녕 후 안녕하세요? @Marc B 작동하지만 올바르게 작동하지 않습니다. 바로 지금은 하나의 셀에 첫 번째 행을 표시하고 나머지는 논리적으로 너무 비쌉니다. 잠시만 기다려주세요. 결과를 업로드합니다. – Jake

답변

0

당신은 CSV 파일을 구문 분석 할 수 SplFileObject을 사용할 수 있습니다. 예를 들어 :

$file = new SplFileObject("/path/to/your/csv/file.csv"); 
$file->setFlags(SplFileObject::READ_CSV); 
$rows = ""; 
foreach ($file as $row) { 
    list ($a, $b, $c, $d, $e, $f, $g, $h, $i, $j, $k, $l) = $row; 

    $rows .= <<<HTML 
<tr> 
    <td>${a}</td> 
    <td>${b}</td> 
    <td>${c}</td> 
    <td>${d}</td> 
    <td>${e}</td> 
    <td>${f}</td> 
    <td>${g}</td> 
    <td>${h}</td> 
    <td>${i}</td> 
    <td>${j}</td> 
    <td>${k}</td> 
    <td>${l}</td> 
</tr> 
HTML; 
} 

echo "<table>".$rows."</table>"; 

PHP Documentation

0

당신은 당신의 코드에서 파일 2 회 읽기 :

$data = fgetcsv($handle, 0, ",");// 1st (just remove this line) 
while (($data = fgetcsv($handle, 0, ",")) !== FALSE) { // 2nd 

다른 솔루션이 시도 :

echo "<table border=\"1\">"; 
[email protected]("\n",@file_get_contents('test.csv')); 
if(count($row)>0) foreach($row as $r){ 
    [email protected](",",$r); 
    echo "<tr>"; 
    foreach($col as $c){ 
     echo "<td>$c</td>"; 
    } 
    echo "</tr>"; 
} 
echo "</table>"; 
+0

이 솔루션은 대개 csv 파일이 몇 줄인 작은 설정에서 작동합니다. csv 파일 크기가 커지면 성능이 약간 저하 될 수 있습니다. – tftd