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 相关文章推荐
用PHPdig打造属于你自己的Google[图文教程]
Feb 14 PHP
15种PHP Encoder的比较
Apr 17 PHP
mysql limit查询优化分析
Nov 12 PHP
mac下安装nginx和php
Nov 04 PHP
php弹出对话框实现重定向代码
Jan 23 PHP
php 判断服务器操作系统的类型
Feb 17 PHP
php实现建立多层级目录的方法
Jul 19 PHP
thinkphp实现发送邮件密码找回功能实例
Dec 01 PHP
php使用GD库创建图片缩略图的方法
Jun 10 PHP
PHP序列化操作方法分析
Sep 28 PHP
如何在PHP中使用数组
Jun 09 PHP
PHP unset函数原理及使用方法解析
Aug 14 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
【星际争霸1】人族1v7家ZBath
2020/03/04 星际争霸
WIFI万能钥匙密码查询接口实例
2015/09/28 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
js常见表单应用技巧
2008/01/09 Javascript
javascript 计算两个整数的百分比值
2009/12/26 Javascript
JavaScript生成随机字符串的方法
2015/03/19 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
2016/01/15 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
使用递归遍历对象获得value值的实现方法
2016/06/14 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
深入理解jquery的$.extend()、$.fn和$.fn.extend()
2017/07/08 jQuery
关于vue.js组件数据流的问题
2017/07/26 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
深入Python解释器理解Python中的字节码
2015/04/01 Python
Python中threading模块join函数用法实例分析
2015/06/04 Python
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
python实现简单多人聊天室
2018/12/11 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
python批量提取图片信息并保存的实现
2021/02/05 Python
html5简单示例_动力节点Java学院整理
2017/07/07 HTML / CSS
汽车工程专业应届生求职信
2013/10/19 职场文书
机械工程师的岗位职责
2013/11/17 职场文书
简历自我评价怎么写呢?
2014/01/06 职场文书
商场中秋节活动方案
2014/02/07 职场文书
淘宝店铺营销方案
2014/02/13 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
python实现学生信息管理系统(面向对象)
2022/06/05 Python