当前位置:  开发笔记 > 编程语言 > 正文

PHP模板 - 使用PHP

如何解决《PHP模板-使用PHP》经验,为你挑选了4个好方法。

您见过的最优雅的模板(最好是纯PHP!)解决方案是什么?

具体来说我对处理感兴趣:

    在重复块中检测它是第一个还是最后一个元素

    轻松处理奇数/偶数情况,如斑马条纹表或类似情况

    其他模数逻辑,你每隔一段时间做一些事情.

我正在寻找一些让这不那么痛苦的东西:





是否真的需要上面的混乱来创建这样的东西?

  • John
  • Jack
  • Jill
  • Jason

只有我发现上面几乎可怕吗?

所有那些启动和关闭php标签让我感到畏缩.



1> Randy..:

您不需要多次打开标签.如果你多次做同样的事情,你也可以用它来制作一个函数:

 0) {
    $out = "
    \n"; foreach ($items as $item) { $out .= "\t
  • $item
  • \n"; } $out .= "
\n"; } return $out; } ?> other page content

此外,如果你不介意使用Javascript,Jquery可以很容易地完成mod 2的操作(例如,对于斑马条带化表格):

$("tr:odd").addClass("odd");
$("tr:even").addClass("even");



2> Cruachan..:

微小但强壮

www.tinybutstrong.com

它没有在页面中嵌入另一种宏语言的巧妙错误,但它确实允许您处理我曾经抛出的每个实际的Web显示问题.特别地,上述奇数/偶数构造是轻而易举的.对于类似于从数据库表中选择代码的内容

在PHP文件中

$TBS->MergeBlock('blk1',$sqlconnect, "SELECT name from people ");

并在HTML文件中

  • [blk.name;block=ul]
  • [blk.name;block=ul]

就是这样.请注意,HTML完全兼容Dreamweaver.此外,如果我想制作三种线型的备用,我需要做的就是添加额外的线,可能有不同的类,所以

  • [blk.name;block=ul]
  • [blk.name;block=ul]
  • [blk.name;block=ul]


+1肯定.令人难以置信的轻量级!

3> gahooa..:

关于循环的一个小帮助:


   
  • 通过说$b=!$b,它会自动在真与假之间交替.由于假打印为"",和真正的打印为"1",然后通过定义CSS类rowrow1,你可以得到你改变行没有任何麻烦.

    考虑使用:first-childcss以不同方式设置第一个样式.



    4> fijter..:

    它不是纯PHP(然后是模板语法),但它确实很好用; Smarty.

    对于循环,你可以做:

      {foreach from=$var name=loop item=test} {if $smarty.foreach.loop.first}
    • This is the first item
    • {/if}
    • {$var.name}
    • {if $smarty.foreach.loop.last}
    • This was the last item
    • {/if} {/foreach}


    我知道它很受欢迎,但我认为Smarty是有史以来最糟糕的公共图书馆之一.
    我在这些评论中没有足够的空间来写一个真正的答案,但主要是因为它是一个完整的其他语言,并且有很多问题.可维护性,性能,可转移性等.这不是我同意的开发方法.
    为什么它是最糟糕的公共图书馆之一?
    那个例子看起来非常可怕!我会接受:"<?php ul($ users);?>"任何一天.
    -1同意了.Smarty是邪恶的.它只是强迫你在同一页面*中使用*two*scrippting languages*.有更好的方法
    推荐阅读
    jerry613
    这个屌丝很懒,什么也没留下!
    DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
    Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有