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学习资源和链接.
Dec 05 PHP
PHP批量生成缩略图的代码
Jul 19 PHP
pdo中使用参数化查询sql
Aug 11 PHP
深入Nginx + PHP 缓存详解
Jul 11 PHP
php生成txt文件标题及内容的方法
Jan 16 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
Aug 23 PHP
解决nginx不支持thinkphp中pathinfo的问题
Jul 21 PHP
PHP中的Session对象如何使用
Sep 25 PHP
WordPress的主题编写中获取头部模板和底部模板
Dec 28 PHP
PHP递归删除多维数组中的某个值
Apr 17 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
Jun 30 PHP
PHP children()函数讲解
Feb 03 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时间戳使用实例代码
2008/06/07 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
PHP中Array相关函数简介
2016/07/03 PHP
php代码检查代理ip的有效性
2016/08/19 PHP
PHP生成唯一ID之SnowFlake算法
2016/12/17 PHP
LAMP环境使用Composer安装Laravel的方法
2017/03/25 PHP
JS判断文本框内容改变事件的简单实例
2014/03/07 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
2018/02/06 Javascript
JS中的两种数据类型及实现引用类型的深拷贝的方法
2018/08/12 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
2019/09/10 Javascript
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
Python中is与==判断的区别
2017/03/28 Python
Python实现的简单计算器功能详解
2018/08/25 Python
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
2019/04/15 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
Python将二维列表list的数据输出(TXT,Excel)
2020/04/23 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
2020/05/11 Python
Python更换pip源方法过程解析
2020/05/19 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
使用css3实现的tab选项卡代码分享
2014/12/09 HTML / CSS
浅析CSS3 中的 transition,transform,translate之间区别和作用
2020/03/26 HTML / CSS
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
应用电子技术专业个人求职信
2013/09/21 职场文书
编辑硕士自荐信范文
2013/11/27 职场文书
数控专业应届生求职信
2013/11/27 职场文书
横店影视城导游词
2015/02/06 职场文书
小学英语课教学反思
2016/02/15 职场文书
辞职申请书范本
2019/05/20 职场文书
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python