使用PHP将CSV文件显示为HTML表的问题

使用PHP将CSV文件显示为HTML表的问题,php,html,csv,Php,Html,Csv,我试图在HTML表格中显示一个两列四行的CSV文件。我有下面的代码,但它只显示第一行,我不明白为什么 <html> <head> <title>test</title> </head> <body> <table border=1> <?PHP $file_handle = fopen("oee1.csv", "r"); while (!feo

我试图在HTML表格中显示一个两列四行的CSV文件。我有下面的代码,但它只显示第一行,我不明白为什么

<html>
<head>
    <title>test</title>
</head>
<body>
    <table border=1>
        <?PHP
        $file_handle = fopen("oee1.csv", "r");
        while (!feof($file_handle) ) {
            $line_of_text = fgetcsv($file_handle, 1024);
            echo '<tr><td>' . $line_of_text[0] . '</td><td>' . $line_of_text[1] . '</td></tr>';
        }  
        fclose($file_handle);
        ?>
    </table>
</body>
</html>

尝试添加对
fgets($file\u handle)的调用
在循环的每次迭代中,您必须以某种方式推进文件句柄指针。

尝试添加对
fgets($file\u handle)的调用
在循环的每次迭代中,您必须以某种方式推进文件句柄指针。

尝试添加对
fgets($file\u handle)的调用
在循环的每次迭代中,您必须以某种方式推进文件句柄指针。

尝试添加对
fgets($file\u handle)的调用
在循环的每次迭代中,您都必须以某种方式推进文件句柄指针。

您没有遍历每一行。 试着这样做:

<!DOCTYPE html>
<html>
    <head>
        <title>+test</title>
    </head>
    <body>
        <?php
            if (($file_handle = fopen("data.csv", "r")) !== false) {
                $str = '';
                $str .= '<table>';
                while (($data = fgetcsv($file_handle, 1024, ",")) !== false) {
                    $str .= '<tr>';
                    foreach ($data as $key => &$value) {
                        $str .= "<td>$value</td>";
                    }
                    $str .= '</tr>';
                }
                fclose($file_handle);
                $str .= '</table>';
                echo $str;
            }
        ?>
    </body>
</html>

+试验
输出:

<table>
    <tbody>
        <tr>
            <td>test1</td>
            <td>1</td>
        </tr>
        <tr>
            <td>test2</td>
            <td>2</td>
        </tr>
        <tr>
            <td>test3</td>
            <td>3</td>
        </tr>
        <tr>
            <td>test4</td>
            <td>4</td>
        </tr>
    </tbody>
</table>

测试1
1.
测试2
2.
测试3
3.
测试4
4.
PS:确保你有特权,并且你的csv作为你的php文件在smae目录中


参考资料:

您没有遍历每一行。 试着这样做:

<!DOCTYPE html>
<html>
    <head>
        <title>+test</title>
    </head>
    <body>
        <?php
            if (($file_handle = fopen("data.csv", "r")) !== false) {
                $str = '';
                $str .= '<table>';
                while (($data = fgetcsv($file_handle, 1024, ",")) !== false) {
                    $str .= '<tr>';
                    foreach ($data as $key => &$value) {
                        $str .= "<td>$value</td>";
                    }
                    $str .= '</tr>';
                }
                fclose($file_handle);
                $str .= '</table>';
                echo $str;
            }
        ?>
    </body>
</html>

+试验
输出:

<table>
    <tbody>
        <tr>
            <td>test1</td>
            <td>1</td>
        </tr>
        <tr>
            <td>test2</td>
            <td>2</td>
        </tr>
        <tr>
            <td>test3</td>
            <td>3</td>
        </tr>
        <tr>
            <td>test4</td>
            <td>4</td>
        </tr>
    </tbody>
</table>

测试1
1.
测试2
2.
测试3
3.
测试4
4.
PS:确保你有特权,并且你的csv作为你的php文件在smae目录中


参考资料:

您没有遍历每一行。 试着这样做:

<!DOCTYPE html>
<html>
    <head>
        <title>+test</title>
    </head>
    <body>
        <?php
            if (($file_handle = fopen("data.csv", "r")) !== false) {
                $str = '';
                $str .= '<table>';
                while (($data = fgetcsv($file_handle, 1024, ",")) !== false) {
                    $str .= '<tr>';
                    foreach ($data as $key => &$value) {
                        $str .= "<td>$value</td>";
                    }
                    $str .= '</tr>';
                }
                fclose($file_handle);
                $str .= '</table>';
                echo $str;
            }
        ?>
    </body>
</html>

+试验
输出:

<table>
    <tbody>
        <tr>
            <td>test1</td>
            <td>1</td>
        </tr>
        <tr>
            <td>test2</td>
            <td>2</td>
        </tr>
        <tr>
            <td>test3</td>
            <td>3</td>
        </tr>
        <tr>
            <td>test4</td>
            <td>4</td>
        </tr>
    </tbody>
</table>

测试1
1.
测试2
2.
测试3
3.
测试4
4.
PS:确保你有特权,并且你的csv作为你的php文件在smae目录中


参考资料:

您没有遍历每一行。 试着这样做:

<!DOCTYPE html>
<html>
    <head>
        <title>+test</title>
    </head>
    <body>
        <?php
            if (($file_handle = fopen("data.csv", "r")) !== false) {
                $str = '';
                $str .= '<table>';
                while (($data = fgetcsv($file_handle, 1024, ",")) !== false) {
                    $str .= '<tr>';
                    foreach ($data as $key => &$value) {
                        $str .= "<td>$value</td>";
                    }
                    $str .= '</tr>';
                }
                fclose($file_handle);
                $str .= '</table>';
                echo $str;
            }
        ?>
    </body>
</html>

+试验
输出:

<table>
    <tbody>
        <tr>
            <td>test1</td>
            <td>1</td>
        </tr>
        <tr>
            <td>test2</td>
            <td>2</td>
        </tr>
        <tr>
            <td>test3</td>
            <td>3</td>
        </tr>
        <tr>
            <td>test4</td>
            <td>4</td>
        </tr>
    </tbody>
</table>

测试1
1.
测试2
2.
测试3
3.
测试4
4.
PS:确保你有特权,并且你的csv作为你的php文件在smae目录中



参考资料:

我不知道确切答案,但我知道上的示例根本不使用feof,只检查
fgetcsv
本身的返回值。更改fgetcsv($file_handle,1024);到fgetcsv($file_handle,1024,“,”);恐怕这还没解决问题!我不知道确切的答案,但我知道上的示例根本不使用feof,只是检查
fgetcsv
本身的返回值。更改fgetcsv($file_handle,1024);到fgetcsv($file_handle,1024,“,”);恐怕这还没解决问题!我不知道确切的答案,但我知道上的示例根本不使用feof,只是检查
fgetcsv
本身的返回值。更改fgetcsv($file_handle,1024);到fgetcsv($file_handle,1024,“,”);恐怕这还没解决问题!我不知道确切的答案,但我知道上的示例根本不使用feof,只是检查
fgetcsv
本身的返回值。更改fgetcsv($file_handle,1024);到fgetcsv($file_handle,1024,“,”);恐怕这还没解决问题!对不起,你能详细说明你的意思吗?对不起,你能详细说明你的意思吗?对不起,你能详细说明你的意思吗?对不起,你能详细说明你的意思吗?这似乎不行(虽然我可能把代码放错了地方,或者没有正确地关闭括号-我会继续尝试!)你能提供任何样本数据吗?问题更新为csv文件示例(目前不使用真实数据)出于某种原因,这将我的所有数据都放在一行中。我认为这一定与我的csv文件中标记新行的方式有关,但我真的不明白为什么!在这种情况下,请使用ini_集(“自动检测行结束”),对;请在我提供的链接上阅读相关内容,该链接似乎不起作用(虽然我可能把代码放错了地方,或者没有正确地关闭括号-我会继续尝试!)你能提供任何样本数据吗?问题更新为csv文件示例(目前不使用真实数据)出于某种原因,这将我的所有数据都放在一行中。我认为这一定与我的csv文件中标记新行的方式有关,但我真的不明白为什么!在这种情况下,请使用ini_集(“自动检测行结束”),对;请在我提供的链接上阅读相关内容,该链接似乎不起作用(虽然我可能把代码放错了地方,或者没有正确地关闭括号-我会继续尝试!)你能提供任何样本数据吗?问题更新为csv文件示例(目前不使用真实数据)出于某种原因,这将我的所有数据都放在一行中。我认为这一定与我的csv文件中标记新行的方式有关,但我真的不明白为什么!在这种情况下,请使用ini_集(“自动检测行结束”),对;请在我提供的链接上阅读相关内容,该链接似乎不起作用(虽然我可能把代码放错了地方,或者没有正确地关闭括号-我会继续尝试!)你能提供任何样本数据吗?问题更新为csv文件示例(目前不使用真实数据)出于某种原因,这将我的所有数据都放在一行中。我认为这一定与csv文件中标记新行的方式有关,但我真的不明白为什么!在这种情况下,请使用ini_集(“自动检测行结束”),对吗