php生成HTML文件的类方法


Posted in PHP onOctober 11, 2019

目的

用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代码中显示出来

源码

地址: https://gitee.com/myDcool/SummerHtml 看其中的test.php文件,是介绍他的用法。

以上就是用php生成HTML文件的类的详细内容,更多请关注三水点靠木其它相关文章

PHP 相关文章推荐
在PHP的图形函数中显示汉字
Oct 09 PHP
让你的PHP同时支持GIF、png、JPEG
Oct 09 PHP
PHP 中关于ord($str)&amp;gt;0x80的详细说明
Sep 23 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
May 27 PHP
php实现利用phpexcel导出数据
Aug 24 PHP
php GUID生成函数和类
Mar 10 PHP
php禁止某ip或ip地址段访问的方法
Feb 25 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
Nov 16 PHP
优化WordPress中文章与评论的时间显示
Jan 12 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
PHP CURL与java http使用方法详解
Jan 26 PHP
thinkphp5 路由分发原理
Mar 18 PHP
php报错502badgateway解决方法
Oct 11 #PHP
Laravel timestamps 设置为unix时间戳的方法
Oct 11 #PHP
laravel 时间格式转时间戳的例子
Oct 11 #PHP
PHP调用接口API封装的例子
Oct 11 #PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
Oct 11 #PHP
laravel中数据显示方法(默认值和下拉option默认选中)
Oct 11 #PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 #PHP
You might like
基于mysql的论坛(2)
2006/10/09 PHP
php写的简易聊天室代码
2011/06/04 PHP
第七章 php自定义函数实现代码
2011/12/30 PHP
如何让CI框架支持service层
2014/10/29 PHP
php生成二维码
2015/08/10 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
JavaScript弹簧振子超简洁版 完全符合能量守恒,胡克定理
2009/10/25 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
2013/09/25 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
微信JS接口大全
2016/08/25 Javascript
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
基于AngularJS实现表单验证功能
2017/07/28 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
关于uniApp editor微信滑动问题
2021/01/15 Javascript
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
[51:10]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
Python实现LRU算法的2种方法
2015/06/24 Python
Python中列表元素转为数字的方法分析
2016/06/14 Python
教你用Python创建微信聊天机器人
2020/03/31 Python
Python实现中值滤波去噪方式
2019/12/18 Python
Linux不知道文件后缀名怎么判断文件类型
2012/04/26 面试题
高中生学习生活的自我评价
2013/10/09 职场文书
《望洞庭》教学反思
2014/02/16 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
党日活动总结
2014/05/07 职场文书
优秀实习生主要事迹
2014/05/29 职场文书
小学学习雷锋活动总结
2014/07/03 职场文书
2014年党员干部四风问题自我剖析材料
2014/09/29 职场文书
公司慰问信范文
2015/03/23 职场文书
2015年班组工作总结
2015/04/20 职场文书
医院消毒隔离制度
2015/08/05 职场文书