强制PHP换行符以遵守当前缩进级别

时间:2014-01-23 06:18:17

标签: php html-table newline

我一直在谷歌搜索疯狂找到一个我认为这个问题的答案是一个非常常见的问题无济于事......

我正在使用“\ n”在查看源代码时将表分解为更易读的结构。有没有办法让它尊重当前的压痕水平?例如:

转过来:

<table>
<tbody>
<tr>
<td>Data</td>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
</tbody>
</table>

进入这个:

<table>
  <tbody>
    <tr>
      <td>Data</td>
      <td>Data</td>
      <td>Data</td>
      <td>Data</td>
    </tr>
  </tbody>
</table>

我正在使用以下代码打印tbody行和单元格:

<?php
    $first = true;
    foreach ($data->rows as $row) {
        if ($first) {
            print "<tr class='highlight'>";
            $first = false;
        } else {
            print "<tr>";
        }
        foreach ($row as $cell) {
            print "<td>";
            printf('%s', $cell);
            print  "</td>\n";
        }
        print "</tr>\n";
    }
?>

3 个答案:

答案 0 :(得分:0)

谷歌给了我这个。

你应该在一个php字符串中整理整个表,通过这里可以找到的函数解析它:

http://www.daveperrett.com/articles/2007/04/05/format-xml-with-php/

然后简单地回显$ xml;

我刚刚发现它,我不保证这是有效的,但它看起来很可靠。

答案 1 :(得分:0)

最终的HTML源代码不得不尊重缩进...没有人看到它(或者你不要对此感到疯狂)。

好的,有时候这也是对我的痴迷(其中一个?),所以你可以这样做:

echo '
    <tr>';
//Loop starts
    echo '
        <td></td>';
// Loop ends
echo '
    </tr>';

在这里你得到一个换行符,你的HTML缩进是独立于PHP的缩进。 这是你想要的吗?

答案 2 :(得分:0)

<?php
    $first = true;
    foreach ($data->rows as $row) {
        if ($first) {
            echo "\t\t<tr class='highlight'>";
            $first = false;
        } else {
            print "\t\t<tr>";
        }
        foreach ($row as $cell) {
            print "\t\t\t<td>";
            printf("\t\t\t\t%s", $cell);
            print  "</td>\n";
        }
        print "\t\t</tr>\n";
    }
?>

如果您想动态地执行此操作,我建议您编写一个标识计数器。并且记得对转义序列使用双引号,单引号在这里不起作用(因为它被视为变量)。