PHP中有一个像样的HTML表生成器类吗?

时间:2010-01-21 09:51:45

标签: php html html-table

我正在寻找一个体面的PHP类,它将生成复杂的HTML表,即它应该支持colspan / rowspan和行,列和单元格的各个CSS类。

1 个答案:

答案 0 :(得分:3)

看起来你的问题与我正在研究的一个小项目密切相关。

我刚刚使用2.x版本更新了 naomik / htmlgen

use function htmlgen\html as h;
use function htmlgen\map;

$beeData = [
  'pop' => 'yup',
  'candy' => 'sometimes',
  'flowers' => 'so much',
  'water' => 'not really',
  'sand' => 'indifferent',
  'donuts' => 'most definitely'
];

echo h('table',
  h('thead',
    h('tr',
      h('td', 'item'),
      h('td', 'do bees like it?')
    )
  ),
  h('tbody',
    map($beeData, function($value, $key) { return
      h('tr',
        h('td', $key),
        h('td', $value)
      );
    })
  )
);

输出(实际输出中不包括空格)

<table>
  <thead>
    <tr>
      <td>item</td>
      <td>do bees like it?</td>
    </tr>
  </thead>
  <tbody>
   <tr>
     <td>pop</td>
     <td>yup</td>
   </tr>
   <tr>
     <td>candy</td>
     <td>sometimes</td>
   </tr>
   <tr>
     <td>flowers</td>
     <td>so much</td>
   </tr>
   <tr>
     <td>water</td>
     <td>not really</td>
   </tr>
   <tr>
     <td>sand</td>
     <td>indifferent</td>
   </tr>
   <tr>
     <td>donuts</td>
     <td>most definitely</td>
   </tr>
 </tbody>
</table>

尽管有些例子似乎有些冗长,但我认为以非常程序化的方式使用DSL的能力使其非常强大。

如果您真的对创建自己的图书馆感兴趣,我很乐意与您合作。请查看项目并让我知道您的想法:)

PS 请参阅example目录中的其他代码以获得更多乐趣!