用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的在线阅读网站,能够满足广大用户的阅读需求,提高网站的访问量和知名度。

  1. 用户注册与登录:用户需要能够注册账号并进行登录。
  2. 图书分类:网站应对图书进行分类,便于用户查找。
  3. 图书展示:网站应展示图书的详细信息,如书名、作者、简介、章节等。
  4. 在线阅读:用户应能够在网站上直接阅读图书。
  5. 收藏与书签:用户应能够收藏图书并设置书签,以便下次阅读。
  6. 评论与分享:用户应对图书进行评论,并能够分享给好友。
  7. 管理员管理:网站应有管理员功能,对图书、用户进行管理。
  1. 用户表:存储用户信息,包括用户名、密码、邮箱、手机号等。
  2. 图书表:存储图书信息,包括书名、作者、简介、章节等。
  3. 分类表:存储图书分类信息。
  4. 收藏表:存储用户收藏的图书信息。
  5. 书签表:存储用户的书签信息。
  6. 评论表:存储用户对图书的评论信息。
  1. 前端开发:使用HTML、CSS、JavaScript等技术实现页面的布局和交互。
  2. 后端开发:使用PHP语言进行后端开发,实现用户注册、登录、图书展示、在线阅读、收藏、评论等功能。
  3. 数据库连接:使用PHP连接数据库,实现数据的增删改查。
  4. 数据交互:使用AJAX等技术实现前后端数据的异步交互。
  5. 安全性考虑:对用户输入进行过滤,防止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

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。