PHP函数与Echo

时间:2012-10-09 13:39:53

标签: php

我发现自己最近处理了大量的表格数据,我更乐于编写原始html,但我想知道是否有更简单的方法(或值得实现的库)有助于减少编写html标签的时间,例如< / p>

<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 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

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

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

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

  2. 如果你发现1.很难,你可以把想法分解......但不像你所展示的那么深,而是生成整行。

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

  4. 希望你明白这一点。

答案 2 :(得分:1)

用于Web开发的PHP的最大优势在于它可以用少量调用完成多少,特别是在这种情况下,内容的回显无需通过语言约束。所以一般情况下,除非案例真的有理由,直接用回声编写html将是最简单的解决方案,它最大限度地利用了PHP,而简单性总是是一件好事。

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

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

答案 3 :(得分:0)

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