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调用三种数据库的方法(3)
Oct 09 PHP
php中对xml读取的相关函数的介绍一
Jun 05 PHP
php截取中文字符串函数实例
Feb 23 PHP
php计算两个文件相对路径的方法
Mar 14 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
Sep 30 PHP
WordPress开发中用于标题显示的相关函数使用解析
Jan 07 PHP
PHP 闭包详解及实例代码
Sep 28 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
Feb 04 PHP
PHP面向对象程序设计重载(overloading)操作详解
Jun 13 PHP
详解将数据从Laravel传送到vue的四种方式
Oct 16 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 PHP
基于php伪静态的实现方法解析
Jul 31 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字符串的递增和递减示例介绍
2014/02/11 PHP
PHP回溯法解决0-1背包问题实例分析
2015/03/23 PHP
PHP实现动态执行代码的方法
2016/03/25 PHP
PHP回调函数概念与用法实例分析
2017/11/03 PHP
jquery实现居中弹出层代码
2010/08/25 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
Jquery读取URL参数小例子
2013/08/30 Javascript
JS中类或对象的定义说明
2014/03/10 Javascript
JS计算网页停留时间代码
2014/04/28 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
js表单验证实例讲解
2016/03/31 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
基于node.js实现微信支付退款功能
2017/12/19 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
浅析vue中的nextTick
2020/12/28 Vue.js
python中enumerate函数遍历元素用法分析
2016/03/11 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
2019/11/28 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
Keras设置以及获取权重的实现
2020/06/19 Python
Python 在局部变量域中执行代码
2020/08/07 Python
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
商务会议邀请函
2014/01/09 职场文书
鲜果饮品店创业计划书
2014/01/21 职场文书
保护环境标语
2014/06/09 职场文书
单位接收函范文
2015/01/30 职场文书
教师年终个人总结
2015/02/11 职场文书
在校生证明
2015/06/17 职场文书