zoukankan      html  css  js  c++  java
  • 用php生成HTML文件的类

    目的

    用PHP生成HTML文档, 支持标签嵌套缩进, 支持标签自定义属性

    起因

    这个东西确实也是心血来潮写的, 本来打算是输出HTML片段用的, 但后来就干脆写成了一个可以输出完整HTML的功能;
    我很满意里边的实现缩进的机制, 大家有用到的可以看看
    p.s. 现在都是真正的前后端分离了(vue, nodejs, webpack...), 这个东西喜欢就用, 不喜欢就算了~

    支持的标签

    html, head, meta, title, body, input, select/option, form, table, div, 注释, 以及 自定义标签(成对出现的标签), 还有一大堆属性(在下边有介绍)

    实现

    整体

    1. 每个标签都对应一个类, 比如 标签<html>, 对应了一个叫html的类
    2. 标签中有用到的属性, 我都放到了一个类中了, 并提供了方法去获取赋了值的属性

    嵌套缩进

    每个标签我都设计了一个类, 比如 table 标签, 就有一个叫table的类与之对应

    每个类里边一般都有以下3个重要成员:

    1. 本标签的缩进值
    2. 输出本标签最终字符串的方法, out()
    3. 给本标签添加子标签的方发, append()

    其中append()接收的是子标签的对象, 在最终调用$html->out()的时候, 每个子标签对象里的out()方法会被依次调用, 缩进值也会从上层类传递到最下层类并累加;

    另外, 每个类都包含了属性类(calss attribute ), 每个类的缩进值是从属性类里继承而来的, 所以如果修改了属性类里的缩进量, 所有类的缩进量就跟着改变了

    你也可以给标签类添加一个自己的缩进值来覆盖统一的缩进值

    属性

    我这里的方案是定义一个类(calss attribute ), 里边有

    1. 标签可能拥有的属性
    2. 对应的setXxx方法
    3. 组装非空的属性拼成字符串的方法
    4. 为了不影响下次显示, 会有专门的清空方法, 把之前赋值的属性都清空

    这样的话, 在定义标签属性的时候, 需要的就赋上值, 不需要的不赋值就不会在最终的HTML代码中显示出来

    源码

    地址: 码云 看其中的test.php文件,是介绍他的用法

    原文地址:https://segmentfault.com/a/1190000015958106

  • 相关阅读:
    Python开发:关于__name__
    学习笔记之cocos2dx2.1.1实现修改plist文件数据,用TinyXml解析XML
    计算机相关书籍推荐(持续更新)
    【C语言】溢出的处理及大小端模式的判断
    使用 MDSD 开发安全可靠的软件
    关于 /dev/null 与 /dev/zero
    NetBeans 时事通讯(刊号 # 108 Jul 08, 2010)
    NetBeans 时事通讯(刊号 # 109 Jul 17, 2010)
    JDK1.6 Update21 下载
    类的内联函数的实现应该放在哪里
  • 原文地址:https://www.cnblogs.com/lalalagq/p/9975246.html
Copyright © 2011-2022 走看看