11水印图和剔除无效数据.docx

上传人:b****8 文档编号:9773931 上传时间:2023-02-06 格式:DOCX 页数:12 大小:757.56KB
下载 相关 举报
11水印图和剔除无效数据.docx_第1页
第1页 / 共12页
11水印图和剔除无效数据.docx_第2页
第2页 / 共12页
11水印图和剔除无效数据.docx_第3页
第3页 / 共12页
11水印图和剔除无效数据.docx_第4页
第4页 / 共12页
11水印图和剔除无效数据.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

11水印图和剔除无效数据.docx

《11水印图和剔除无效数据.docx》由会员分享,可在线阅读,更多相关《11水印图和剔除无效数据.docx(12页珍藏版)》请在冰豆网上搜索。

11水印图和剔除无效数据.docx

11水印图和剔除无效数据

回顾

文件上传

1.判断上传的文件是否正确(文件类型,错误代码)

2.移动(文件重命名,文件移动失败)

3.通过配置文件来配置相关信息(文件的大小,文件类型)

4.保存在数据库中的是文件上传对应的相对路径(不是绝对路径)

缩略图

1.获取原图资源

通过判断文件的类型来使用不同的创建图片资源的函数

a)获取文件后缀名

b)获取文件后缀名对应的可能存在的函数识别类型的图片后缀(关联数组)

c)将文件后缀与imagecreatefrom进行拼凑,形成一个函数名的字符串

d)利用可变函数将字符串当做函数使用

2.创建缩略图资源(画布)

3.采样和复制粘贴(将原图资源放到缩略图资源)

4.保存输出

5.释放(销毁)资源

缩略图

补白:

缩略图按照比例进行缩放,如果不能够完全填充缩略图(不是正好把所有的缩略图给覆盖),那么没有被覆盖的区域,就使用空白(白色)来填充。

如何计算缩略图中原图应该有的尺寸?

如何修改缩略图的制作方法?

1.求出原图的宽高比和缩略图的宽高比

2.通过比较宽高比来计算原图在缩略图中应该实际占用的宽和高。

3.修改图片资源粘贴过程中原图在缩略图所占的宽和高。

4.求出原始图片在缩略图中的起始位置。

5.修改缩略图和原图采样粘贴时的原图的起始位置。

6.修改缩略图的背景颜色。

缩略图显示

在商品列表中,每个商品显示对应的缩略图信息。

1.添加一个img标签,src属性使用对应数据库里的存储路径。

/admin/templates/goods_list.html

2.解决前后台访问的路径问题:

将所有访问的路径做成绝对路径。

url

a)前台:

b)后台:

解决方法:

类似TP框架,定义一个路径常量,然后在需要使用绝对路径的时候,平凑常量和相对路径即可。

定义目录常量。

/admin/includes/init.php

在所有需要浏览器解析资源的地方拼凑绝对路径。

水印

水印就是在一张图片上添加的文字或者图片

文字水印:

验证码

图片水印:

将一张图片覆盖在另外一张图片上

水印的作用?

1.用来标识版权

2.马赛克

水印的制作流程

1.获取水印图片资源

2.获取目标图片资源(水印放到哪个图片上)

3.采样合并(将水印图合并到目标图片上)

imagecopymerge:

将两个图片资源合并到一起。

boolimagecopymerge(目标图片资源,水印资源,目标x坐标,目标y坐标,水印x坐标,水印y坐标,水印采样宽,水印采样高度,透明度)

注意:

透明度是度数越低越透明

4.保存输出

5.销毁资源

水印应用到项目

1.找到要使用水印图的地方。

/admin/goods.php?

act=insert

2.实现水印图创建方法。

/includes/Image.class.php

a)检查文件的有效性(目标文件)

b)获取水印图片信息

c)检查水印图片的有效性

d)确定获取图片资源的函数。

e)获取图片资源

f)获取图片信息

g)因为需要计算水印图的位置,需要指定参数来供用户选择。

h)通过用户选定的位置,计算出水印的位置

i)采样合并:

认为对水印图的采样是完全的。

j)参数中指定透明度。

k)保存图片

l)销毁资源

3.在调用出判断结果。

/admin/goods.php?

act=insert

如果涉及到一个多字段的更新的时候,当用户提交后,后台接收到数据之后没有办法自动用户做了哪些修改。

当后台接收到记录对应的id的时候,这个时候数据库的数据并没有被改变。

1.接收用户数据(包括记录ID)

2.通过记录ID把对应的原始数据进行获取

3.通过array_diff(接收的用户的数据数组,当前ID对应的原来的数据数组)。

数组下标必须一致。

4.最后对结果进行遍历构造更新语句进行执行。

剔除无效数据

在构造SQL语句的时候,对字段进行筛选,只有在数据表中存在的字段,可以被用来构造SQL语句,其他的被放弃。

1.为每个对象(表类)获取一份数据,每张表对应的所有的字段。

在DB类中增加一个方法:

获取对应的表的所有字段信息,然后在构造方法中调用。

2.在DB类的构造方法中调用当前方法。

3.在每个类中必须定义一个属性fields。

MVC

MVC又是一种设计思想,是面向对象思想的一种设计典范。

mvc指的是将业务逻辑与数据的显示进行分离(PHP文件处理所有的业务逻辑,使用模板来显示数据和样式),还需要将业务逻辑与数据处理分离(数据的处理都由对应数据表的类来处理)

M:

Model,模型,专门用来处理数据(操作数据库)

V:

View,视图,用来显示数据,以及样式

C:

Controller,控制器,连接M和V,处理所有的业务逻辑(接收用户请求,调用模型获取数据,调用视图显示数据)

MVC的访问原理

PHP代码发展过程

1.混编模式:

PHP代码与html代码混合在一起

a)优点:

执行效率高

b)缺点:

很难维护

2.模板技术:

PHP代码与html代码分离开

a)优点:

维护性增强

b)缺点:

数据的处理与业务逻辑的处理是合并的

3.MVC思想:

在模板技术的基础上,将数据的操作与业务逻辑的处理再次进行分离

a)优点:

整个代码变的简洁,维护性变得更强

几乎所有的面向对象都是在MVC的思想指导下进行开发。

几个常见的单词

模块:

Module,一系列功能的集合(相似的功能都由一个模块来出来),模块就是控制器

模板:

template,负责显示数据以及控制数据显示的样式,就是视图

shop项目的MVC思想

控制器处理业务逻辑:

凡是用户的请求,用户数据的提交在后台的数据获取,数据合法性判断,都属于业务逻辑

模型的数据逻辑:

凡是需要操作数据库的部分都称之为数据逻辑。

shop项目是基于模块的单一入口

privilege.php:

处理所有的权限

goods.php:

处理所有商品相关

category.php:

处理所有商品分类相关

基于面向对象,项目可以分为两种

1.模块单一入口:

进化不完全(业务处理采用面向过程,数据处理采用面向对象)

2.项目单一入口:

整个项目的所有请求请求一个PHP文件(index.php),(控制器,视图,模型都是类)

中级项目

提供一个网站的模板(可以自己找:

静态页),通过PHP来实现动态网站。

项目要求

1.项目架构

a)PHP源码开发

b)mysql数据库

c)MVC设计思想

2.代码架构

a)简单的文件结构

b)所有实现的方法或者业务都必须在前面添加注释

分组要求

一排一组

每组有一个组长

组长工作:

1.给组员分配工作

2.公共代码的维护

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1