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读取XML值的代码(推荐)
Jan 01 PHP
三种php连接access数据库方法
Nov 11 PHP
php生成txt文件标题及内容的方法
Jan 16 PHP
php根据操作系统转换文件名大小写的方法
Feb 24 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
php单例模式示例分享
Feb 12 PHP
PHP随机生成唯一HASH值自定义函数
Apr 20 PHP
php操作路径的经典方法(必看篇)
Oct 04 PHP
Yii全局函数用法示例
Jan 22 PHP
利用laravel+ajax实现文件上传功能方法示例
Aug 13 PHP
php链式操作的实现方式分析
Aug 12 PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 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
PHP与SQL注入攻击[一]
2007/04/17 PHP
关于js和php对url编码的处理方法
2014/03/04 PHP
CodeIgniter框架过滤HTML危险代码
2014/06/12 PHP
php构造函数的继承方法
2015/02/09 PHP
深入了解PHP中的Array数组和foreach
2016/11/06 PHP
用javascript实现自定义标签
2007/05/08 Javascript
Jquery 获取对象的几种方式介绍
2014/01/17 Javascript
javascript判断chrome浏览器的方法
2014/03/26 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
2016/10/15 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
在angularJs中进行数据遍历的2种方法
2018/10/08 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
2019/01/06 Javascript
js之切换全屏和退出全屏实现代码实例
2019/09/09 Javascript
[53:49]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python列表操作使用示例分享
2014/02/21 Python
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
Python3中的真除和Floor除法用法分析
2016/03/16 Python
Python快速从注释生成文档的方法
2016/12/26 Python
Python实现的下载网页源码功能示例
2017/06/13 Python
PyQt4实现下拉菜单可供选择并打印出来
2018/04/20 Python
Python smtplib实现发送邮件功能
2018/05/22 Python
python如何快速拼接字符串
2020/10/28 Python
马来西亚银饰品牌:JEOEL
2017/12/15 全球购物
小学师德标兵先进事迹材料
2014/05/25 职场文书
教师个人教学总结
2015/02/11 职场文书
保安辞职信范文
2015/02/28 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
2016年春季运动会通讯稿
2015/11/25 职场文书
python开发的自动化运维工具ansible详解
2021/08/07 Python
python编程项目中线上问题排查与解决
2021/11/01 Python