【问题标题】:PHP - Add newline to table cell with multiple lines [duplicate]PHP - 用多行向表格单元格添加换行符[重复]
【发布时间】:2018-03-31 22:56:29
【问题描述】:

我在 HTML 表格单元格中创建新行时遇到问题。数据来自 CSV 文件,每个单元格都有多行。我尝试使用'\n''\r',但它不起作用。我搜索了论坛,但没有找到解决方案。关于如何实现这一目标的任何建议?我应该使用不同的功能吗?谢谢..

CSV 如下所示:

header,header,header,header,header
,,,,"title 
aaaaaaa
bbbbbbb
ccccccc","title 
ddddddd"

我使用的代码输出文件如下:

       header                 header
title aaaaaaa bbbbbbb      title ddddddd
ccccccc

我希望它像这样输出:

 header    header
 title     title
aaaaaaa   ddddddd
bbbbbbb
ccccccc

我使用的代码来自这个线程:Dynamically display a CSV file as an HTML table on a web page

<?php
echo "<html><body><table>\n\n";
$f = fopen("my.csv", "r");
while (($line = fgetcsv($f, 0)) !== false) {
        echo "<tr>";
        foreach ($line as $cell) {
                echo  "<td>" . htmlspecialchars($cell) . "</td>";
        }
        echo "</tr>\n";
}
fclose($f);
echo "\n</table></body></html>";
?>

我最终使用了 nl2br。工作代码如下。

<?php
echo "<html><body><table>\n\n";
$f = fopen("my.csv", "r");
while (($line = fgetcsv($f, 0)) !== false) {
        echo "<tr>";
        foreach ($line as $cell) {
                echo  nl2br("<td>" . htmlspecialchars($cell) . "\n" . "</td>");
        }
        echo "</tr>\n";
}
fclose($f);
echo "\n</table></body></html>";
?>

【问题讨论】:

标签: php html csv html-table newline


【解决方案1】:

您可以尝试使用预定义常量PHP_EOL,它是 php 文档之后的«正确的“行尾”。

其实“\n”是一个典型的unix行尾,大多数windows都不太理解。 Php 将使用PHP_EOL 来处理。

echo "</tr>".PHP_EOL;

您也可以尝试使用 heredoc (EOF)

http://php.net/manual/en/reserved.constants.php http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    相关资源
    最近更新 更多