资讯专栏INFORMATION COLUMN

用php生成HTML文件的类

DandJ / 2760人阅读

摘要:目的用生成文档支持标签嵌套缩进支持标签自定义属性起因这个东西确实也是心血来潮写的本来打算是输出片段用的但后来就干脆写成了一个可以输出完整的功能我很满意里边的实现缩进的机制大家有用到的可以看看现在都是真正的前后端分离了这个东西喜欢就用不喜欢就

目的

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

起因

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

支持的标签

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

实现 整体

每个标签都对应一个类, 比如 标签, 对应了一个叫html的类

标签中有用到的属性, 我都放到了一个类中了, 并提供了方法去获取赋了值的属性

嵌套缩进

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

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

本标签的缩进值

输出本标签最终字符串的方法, out()

给本标签添加子标签的方发, append()

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

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

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

属性

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

标签可能拥有的属性

对应的setXxx方法

组装非空的属性拼成字符串的方法

为了不影响下次显示, 会有专门的清空方法, 把之前赋值的属性都清空

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

源码

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29203.html

相关文章

  • php生成HTML文件的类

    摘要:目的用生成文档支持标签嵌套缩进支持标签自定义属性起因这个东西确实也是心血来潮写的本来打算是输出片段用的但后来就干脆写成了一个可以输出完整的功能我很满意里边的实现缩进的机制大家有用到的可以看看现在都是真正的前后端分离了这个东西喜欢就用不喜欢就 目的 用PHP生成HTML文档, 支持标签嵌套缩进, 支持标签自定义属性 起因 这个东西确实也是心血来潮写的, 本来打算是输出HTML片段用的, ...

    freewolf 评论0 收藏0
  • PHP实现markdown文档管理工具

    摘要:工作后一直在从事开发从以前的大包大揽到现在的退居服务端写接口当中接触过几个的接口文档管理工具或系统简单描述下功能全面而且简洁有用户权限管理功能支持支持导出有多种文档模板目录支持两级折叠功能强大权限管理邮件提醒全文搜索插件管理等重收费的一个文 工作后一直在从事PHP开发, 从以前的大包大揽到现在的退居服务端写接口, 当中接触过几个的接口文档管理工具或系统, 简单描述下: showdoc...

    wpw 评论0 收藏0
  • API 教你如何生成可调试的API文档

    摘要:本文写的是什么平时总要写文档。所以,我所希望的事,就是在完成代码后,可以费很少的力气,就生成一个像上文中所说的可调试文档。我们接下来要做两件事生成文档文档是可调试的文档。一句话流程点击生成按钮,生成类的文档。 本文写的是什么? 平时总要写文档。不写,代码无法维护,所以不得不写。但是写文档费时费力,更可怕的是写完了读起来还很费劲,束之高阁,总感觉时间浪费掉了,真是苦不堪言。 一直以来深受...

    KaltZK 评论0 收藏0
  • 从0开始构建一个属于你自己的PHP框架

    摘要:如何构建一个自己的框架为什么我们要去构建一个自己的框架可能绝大多数的人都会说市面上已经那么多的框架了,还造什么轮子。 showImg(https://segmentfault.com/img/bVNg9F?w=500&h=500); 如何构建一个自己的PHP框架 为什么我们要去构建一个自己的PHP框架?可能绝大多数的人都会说市面上已经那么多的框架了,还造什么轮子?。我的观点造轮子不是目...

    vpants 评论0 收藏0
  • 终于不再苦逼地写文档了!教你如何生成可调试的API文档

    摘要:本文写的是什么平时总要写文档。所以,我所希望的事,就是在完成代码后,可以费很少的力气,就生成一个像上文中所说的可调试文档。我们接下来要做两件事生成文档文档是可调试的文档。一句话流程点击生成按钮,生成类的文档。 本文写的是什么? 平时总要写文档。不写,代码无法维护,所以不得不写。但是写文档费时费力,更可怕的是写完了读起来还很费劲,束之高阁,总感觉时间浪费掉了,真是苦不堪言。 一直以来深受...

    SegmentFault 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<