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小技巧搜集,每个PHPer都来露一手
Jan 02 PHP
PHP中break及continue两个流程控制指令区别分析
Apr 18 PHP
php页面跳转代码 输入网址跳转到你定义的页面
Mar 28 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
Jun 03 PHP
Windows7下的php环境配置教程
Feb 28 PHP
PHP代码实现表单数据验证类
Jul 28 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
Apr 11 PHP
php使用str_replace替换多维数组的实现方法分析
Jun 15 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
Nov 13 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 PHP
php+js实现点赞功能的示例详解
Aug 07 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蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
php数据库密码的找回的步骤
2011/01/12 PHP
PHP原生模板引擎 最简单的模板引擎
2012/04/25 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
php创建类并调用的实例方法
2019/09/25 PHP
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
一行代码告别document.getElementById
2012/06/01 Javascript
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
简单的jQuery入门指引
2015/07/28 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
如何编写jquery插件
2017/03/29 jQuery
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
js实现鼠标移动到图片产生遮罩效果
2017/10/21 Javascript
Node.js 如何利用异步提升任务处理速度
2019/01/07 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
2019/09/26 Javascript
Python 随机生成中文验证码的实例代码
2013/03/20 Python
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
Python自动化开发学习之三级菜单制作
2017/07/14 Python
Python中dict和set的用法讲解
2019/03/28 Python
用Python+OpenCV对比图像质量的几种方法
2019/07/15 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
CSS3的新特性介绍
2008/10/31 HTML / CSS
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
西班牙品牌鞋子、服装和配饰在线商店:Esdemarca
2021/02/17 全球购物
初中考试作弊检讨书
2014/02/01 职场文书
国培计划培训感言
2014/03/11 职场文书
2015年感恩母亲节的演讲稿
2015/03/18 职场文书
小学班长竞选稿
2015/11/20 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS