用php生成HTML文件的类
目的
用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代码中显示出来
源码地址: 传到码云了,看其中的test.php文件,是介绍他的用法。
以上就是用php生成HTML文件的类的详细内容,更多请关注其它相关文章!
更多技巧请《转发 + 关注》哦!
基于PHP的在线阅读网站
基于PHP的在线阅读网站开发
随着互联网的发展,人们对在线阅读的需求越来越高。在线阅读网站为用户提供了便捷的阅读方式,使得用户可以在任何时间、任何地点进行阅读。因此,开发一个基于PHP的在线阅读网站,能够满足广大用户的阅读需求,提高网站的访问量和知名度。
- 用户注册与登录:用户需要能够注册账号并进行登录。
- 图书分类:网站应对图书进行分类,便于用户查找。
- 图书展示:网站应展示图书的详细信息,如书名、作者、简介、章节等。
- 在线阅读:用户应能够在网站上直接阅读图书。
- 收藏与书签:用户应能够收藏图书并设置书签,以便下次阅读。
- 评论与分享:用户应对图书进行评论,并能够分享给好友。
- 管理员管理:网站应有管理员功能,对图书、用户进行管理。
- 用户表:存储用户信息,包括用户名、密码、邮箱、手机号等。
- 图书表:存储图书信息,包括书名、作者、简介、章节等。
- 分类表:存储图书分类信息。
- 收藏表:存储用户收藏的图书信息。
- 书签表:存储用户的书签信息。
- 评论表:存储用户对图书的评论信息。
- 前端开发:使用HTML、CSS、JavaScript等技术实现页面的布局和交互。
- 后端开发:使用PHP语言进行后端开发,实现用户注册、登录、图书展示、在线阅读、收藏、评论等功能。
- 数据库连接:使用PHP连接数据库,实现数据的增删改查。
- 数据交互:使用AJAX等技术实现前后端数据的异步交互。
- 安全性考虑:对用户输入进行过滤,防止SQL注入等安全问题。
基于PHP的在线阅读网站开发是一个综合性的项目,涉及到前端、后端、数据库等多个方面的知识。在实现过程中,需要注意页面的布局、交互、数据的安全性等方面。同时,还需要对用户需求进行深入分析,确保开发的网站能够满足用户的需求。通过本项目的开发,可以巩固和提高PHP语言、数据库、前端等方面的技能,为今后的项目开发打下坚实的基础。
PHP笔记(二) HTML表单
大多数PHP程序都使用HTML表单从用户那里获取数据并计算结果。
- 选择适合于收集的数据类型和提供交互方式的控件。
- 清楚标记每一个控件,这样用户就可以理解其功能。
- 尽可能将标签对齐。将控件的左边缘对齐。
- 将相关的标签分组,并且通过设计中使用空白将每一个分组分开。
- 表单上的控件顺序应该类似于用户操作他们的顺序。
首先创造一个基本的HTML大纲,包含表单控件;然后将控件进行合并(HTML表单必须包括一个提交按钮,用户单击它可以将表单数据发送到服务器。)一个单独的HTML页面可以包含多个表单。
- 创建HTML结构
包含表单的HTML结构和和普通的HTML结构一样。
在包含表单的HTML页面中可以使用任何HTML标签。基本的表单使用FROM标签来说明。该标签中METHOD属性接收GET或POST两个值中的一个。ACTION属性子明PHP脚本的url,该脚本可以收集通过表单收集的数据,可以是绝对路径或者相对路径。
- 合并控件
两个常用的基本控件:文本框和提交按钮。
文本框:允许用户键入信息以发送给PHP脚本。NAME属性为文本提供名称,PHP脚本可以通过名称准确访问其内容,因此它应该是唯一的且符合PHP变量命名规则(但不需要$符号),单标签。VALUE属性指明出现在提交按钮上面的标题。创建方式如下:
提交按钮:允许用户将一个表单的内容发送到服务器,一个HTML表单对应应该有一个提交按钮。
示例:一个完整的HTML表单。
- 使用多个表单
可以在一个HTML页面中包含多个表单,注意下一个表单的FORM开始之前需要结束前一个FORM表单。
- 创建自定义的文本框
文本框的属性中,TYPE和NAME是必须的,其余是可选属性。SIZE属性用于设置文本框的可视大小;MAXLENGTH指明用户键入字符的最大长度;VALUE给出了一个最初显示在文本框中的值。
- 创建文本区域
文本区域可以输入多行文本。NAME和ROWS属性是必须的。ROWS属性表明了文本区域内可以看到的文本行数,充满时会滚动。COLS属性指明可见文本列数与行数类似。WRAP属性指明文本区域内单词换行的方式,可以指定如下值。该标签为双标签。
- 创建密码框
创建密码框的语法与文本框相同,但要将TYPE属性指定为PASSWORD而不是TYPE。
- 创建复选框
取两个值中的一个,即二选一。TYPE属性是必须的,checked属性出现,该复选框默认情况会被选定。value属性指定复选框被选定情况下被发送到服务器的值,默认发送on值。法如下:
- 创建单选按钮
语法与复选框属性含义相同,但是TYPE属性的值必须是RADIO,NAME属性是必须的。
- 创建列表框
用户可以选择一个或者多个选项,它是一个滚动菜单。
name属性是必须的,multipile属性指明用户可以通过按下crtl键并单击多个选项来选择它们
列表框的单选行为可作为单选按钮。
- 创建隐藏域
- 实现上传文件的HTML表单
其中type属性是必须的。格式通过使用MIME码指定。常用的格式如下:
超文本标记语言文本 .html,.html text/html
普通文本 :txt text/plain
word文档:application/msword
RTF文本 :rtf application/rtf
GIF图形 :gif image/gif
JPEG图形 :jpeg,
jpg: image/jpeg
au声音文件:au audio/basic
MIDI音乐文件 :mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
压缩文件.rar application/octet-stream
压缩文件.zip application/x-zip-compressed
TA件 .tar application/x-tar
- 使用图像提交数据
- 创建重置按钮
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。