0

我发现自己最近在处理大量表格数据,我非常喜欢编写原始 html,但我想知道是否有更简单的方法(或值得实施的库)来帮助减少编写 html 标签的时间,例如

<tr><td></td></tr>

我已经创建了自己的自定义函数,但我认为最终它不一定有帮助,并且可能会减慢我的脚本,现在我的项目很小,所以也许它可以应对,例如:

echo '<tr class="test_class">
    <td>' . $content . '</td>
    <td>' . $second_content . '</td>
<tr/>';

这是我当前功能的示例:

tr("test_class");
   td(); echo $content; escape(td);
   td(); echo $second_content; escape(td);
escape(tr);

期待听到人们的想法。

4

4 回答 4

2

如果您已short_open_tags打开(并假设您可以在必要时打开它),您可以使用模板语法,如下所示:

<table>
    <?php foreach($myList as $key => $value): ?>
    <tr>
        <td><?= $value["key1"] ?></td>
        <td><?= $value["key2"] ?></td>
        ...
    </tr>
    <?php endforeach; ?>
</table>

在编写表格数据方面,这可能会使您的工作更轻松。

于 2012-10-09T13:43:52.833 回答
2

有多种方法可以做到这一点......

  1. 编写您自己的 html 帮助程序库,该库将包含可以根据其数据源生成 html 元素的类。例如,您可以这样称呼它们:

    <?php
       HtmlHelper::Table("someArrayOfValues", "idOfTable", "styleOfTable");
    ?>
    

    如果您正确实施此想法,这是一个很好的可重用解决方案。几天前我自己也在玩这个,真的很简单。

  2. 如果您发现 1. 困难,您可以将想法拆分...但不像您展示的那样深,而是生成整行。

    <?php
        foreach ($myArray as $key => $value)
        {
             echo HtmlHelper::Row(...);
        }
    ?>
    
  3. 查找一些提供此功能的库。恐怕在这件事上帮不了你。我喜欢控制生成的标记。

希望你能明白。

于 2012-10-09T13:46:40.510 回答
1

PHP 在 Web 开发中的最大优势在于它与很少的调用有关,特别是在这种情况下,无需通过语言限制即可回显内容。所以总的来说,除非确实有必要,否则直接编写带有 echo 的 html 将是最简单的解决方案,可以充分利用 PHP 的优势,而且简单总是一件好事。

话虽这么说,如果你有很多复杂的表生成,那么如果使用像http://pear.php.net/package/HTML_Table/这样的库,代码会更具可读性。此外,如果您希望执行诸如将对象序列化为表格显示之类的操作,那么创建一个为此而设计的序列化程序将是最符合该功能的解决方案。

在上面的代码中,我建议一个透明的实用程序函数当然不会受到伤害。但是,如果您始终拥有相同数量的列,那么您可以使用与表格单元格分隔标记(一次生成一行的函数)连接的数组,而不是您要走的方向。

于 2012-10-09T13:46:20.293 回答
0

使用一些模板引擎更舒服。试试twigsmarty

于 2012-10-09T13:43:31.550 回答