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 相关文章推荐
桌面中心(四)数据显示
Oct 09 PHP
PHP 选项及相关信息函数库
Dec 04 PHP
apache rewrite_module模块使用教程
Jan 10 PHP
PHP分页函数代码(简单实用型)
Dec 02 PHP
PHP运行模式的深入理解
Jun 03 PHP
深入php-fpm的两种进程管理模式详解
Jun 03 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
Oct 29 PHP
php判断对象是派生自哪个类的方法
Jun 20 PHP
PHP获取真实客户端的真实IP
Mar 07 PHP
PHP递归实现汉诺塔问题的方法示例
Nov 25 PHP
php生成静态页面并实现预览功能
Jun 27 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 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/03/27 PHP
PHP 数组实例说明
2008/08/18 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
js更优雅的兼容
2010/08/12 Javascript
调试Node.JS的辅助工具(NodeWatcher)
2012/01/04 Javascript
JavaScript执行效率与性能提升方案
2012/12/21 Javascript
Microsfot .NET Framework4.0框架 安装失败的解决方法
2013/08/14 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
js,jq,css多方面实现简易下拉菜单功能
2017/05/13 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
详解JavaScript修改注册表的方法
2020/01/05 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
Python日志模块logging简介
2015/04/13 Python
分分钟入门python语言
2018/03/20 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
2018/05/29 Python
python实现泊松图像融合
2018/07/26 Python
python @classmethod 的使用场合详解
2019/08/23 Python
Python lambda表达式filter、map、reduce函数用法解析
2019/09/11 Python
python生成特定分布数的实例
2019/12/05 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
Python数据库封装实现代码示例解析
2020/09/05 Python
入党自我鉴定范文
2013/10/04 职场文书
安全员岗位职责
2013/11/11 职场文书
新闻专业学生的自我评价
2014/02/13 职场文书
小组名称和口号
2014/06/09 职场文书
英语教研活动总结
2014/07/02 职场文书
白酒代理协议书范本
2014/10/26 职场文书
服务整改报告
2014/11/06 职场文书
幼儿园辞职书
2015/02/26 职场文书
Django操作cookie的实现
2021/05/26 Python
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python