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 相关文章推荐
解析CI的AJAX分页 另类实现方法
Jun 27 PHP
php判断ip黑名单程序代码实例
Feb 24 PHP
PHP易混淆函数的区别及用法汇总
Nov 22 PHP
php通过array_merge()函数合并两个数组的方法
Mar 18 PHP
PHP安全上传图片的方法
Mar 21 PHP
php生成PDF格式文件并且加密
Jun 22 PHP
PHP之密码加密的几种方式
Jul 29 PHP
Yii2实现ActiveForm ajax提交
May 26 PHP
yii2多图上传组件的使用教程
May 10 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
Apr 17 PHP
php根据地址获取百度地图经纬度的实例方法
Sep 03 PHP
详解PHP服务器如何在有限的资源里最大提升并发能力
May 25 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绕过open_basedir限制操作文件的方法
2018/06/10 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
xml分页+ajax请求数据源+dom取结果实例代码
2008/10/31 Javascript
this和执行上下文实现代码
2010/07/01 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
2013/11/25 Javascript
JS实现局部选择打印和局部不选择打印
2014/04/03 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
2016/10/19 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
JS实现放烟花效果
2020/03/10 Javascript
[00:32]2018DOTA2亚洲邀请赛VG出场
2018/04/03 DOTA
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
python实现清屏的方法
2015/04/30 Python
Django日志模块logging的配置详解
2017/02/14 Python
python实现随机漫步算法
2018/08/27 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
python实发邮件实例详解
2019/11/11 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
2020/10/02 Python
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
CSS3制作皮卡丘动画壁纸的示例
2020/11/02 HTML / CSS
出纳的岗位职责
2013/11/09 职场文书
岗位竞聘演讲稿
2014/01/10 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
毕业生应聘求职信
2014/07/10 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
青春雷锋观后感
2015/06/10 职场文书
如何计划开一家便利店?
2019/07/31 职场文书
Java输出Hello World完美过程解析
2021/06/13 Java/Android