PHP常用功能模块.ppt

上传人:sh****n 文档编号:6402752 上传时间:2020-02-24 格式:PPT 页数:92 大小:2.52MB
返回 下载 相关 举报
PHP常用功能模块.ppt_第1页
第1页 / 共92页
PHP常用功能模块.ppt_第2页
第2页 / 共92页
PHP常用功能模块.ppt_第3页
第3页 / 共92页
点击查看更多>>
资源描述
第5章PHP常用功能模块 5 1目录与文件操作 5 2图形处理 5 3日期和时间 5 1目录与文件操作 5 1 1目录操作1 创建和删除目录使用mkdir 函数可以根据提供的目录名或目录的全路径 创建新的目录 如果创建成功则返回TRUE 否则返回FALSE 例如 使用rmdir 函数可以删除一个空目录 但是必须具有相应的权限 如果目录不为空 必须先删除目录中的文件才能删除目录 例如 5 1 1目录操作 2 获取和更改当前工作目录当前工作目录是指正在运行的文件所处的目录 使用getcwd 函数可以取得当前的工作目录 该函数没有参数 成功则返回当前的工作目录 失败则返回FALSE 例如 使用chdir 函数可以设置当前的工作目录 该函数的参数是新的当前目录 例如 当前工作目录为 C wamp www Practice mkdir good 在Apache文件根目录中建立good目录 chdir good 设置good目录为当前工作目录echogetcwd 输出 C wamp www good 5 1 1目录操作 3 打开和关闭目录句柄目录的访问是通过句柄实现的 使用opendir 函数可以打开一个目录句柄 该函数的参数是打开的目录路径 打开成功则返回TRUE 失败则返回FALSE 打开句柄后其他函数就可以调用该句柄 为了节省服务器资源 使用完一个已经打开的目录句柄后 应该使用colsedir 函数关闭这个句柄 例如 5 1 1目录操作 4 读取目录内容例如 假设根目录的good目录下已经创建了一个目录html 其中保存了1 php 2 php 3 php这3个文件 要遍历html目录可以使用如下代码 输出文件名 closedir dir handle 关闭目录句柄 elseecho 打开目录失败 5 1 1目录操作 输出结果如下 1 php2 php3 php 5 1 1目录操作 5 获取指定路径的目录和文件scandir 函数列出指定路径中的目录和文件 语法格式如下 arrayscandir string directory int sorting order resource context 函数运行成功则返回一个包含指定路径下的所有目录和文件名的数组 失败则返回FALSE 例如 1 2 1 php 3 2 php 4 3 php print r file2 输出 Array 0 3 php 1 2 php 2 1 php 3 4 5 1 2文件的打开与关闭 1 打开文件打开文件使用的是fopen 函数 语法格式如下 resourcefopen string filename string mode bool use include path resource context 1 filename参数 fopen 函数将 filename参数指定的名字资源绑定到一个流上 2 mode参数 mode参数指定了fopen 函数访问文件的模式 取值见表5 1 3 use include path参数 如果需要在include path PHP的include路径 在PHP的配置文件设置 中搜寻文件 可以将可选参数 use include path的值设为1或TRUE 默认为FALSE 5 1 2文件的打开与关闭 4 context参数 可选的 context参数只有文件被远程打开时 如通过HTTP打开 才使用 它是一个资源变量 其中保存着与fopen 函数具体的操作对象有关的一些数据 如果fopen 打开的是一个HTTP地址 那么这个变量记录着HTTP请求的请求类型 HTTP版本及其他头信息 如果打开的是FTP地址 记录的可能是FTP的被动 主动模式 例如 5 1 2文件的打开与关闭 2 关闭文件文件处理完毕后 需要使用fclose 函数关闭文件 语法格式如下 boolfclose resource handle 参数 handle为要打开的文件指针 文件指针必须有效 如果关闭成功则返回TRUE 否则返回FALSE 例如 5 1 3文件的写入 例如 下面的代码将在D盘data目录下新建一个名为index txt的文件 data目录存在 1 fwrite 函数 文件打开后 向文件中写入内容可以使用fwrite 函数 语法格式如下 intfwrite resource handle string string int length 5 1 3文件的写入 如果字符串 string中字节数小于 length 则写入整个字符串后就停止写入 如果写入操作成功 fwrite 函数将返回写入的字节数 出现错误时返回FALSE 例如 echo 写入的字节数为 num 个 成功写入的字符个数为14个fclose handle 关闭文件 elseecho 文件写入失败 5 1 3文件的写入 2 file put contents 函数 PHP5还引入了file put contents 函数 这个函数的功能与依次调用fopen fwrite 及fclose 函数的功能一样 语法格式如下 intfile put contents string filename string data int flags resource context 写入成功后函数返回写入的字节数 否则返回FALSE 例如 5 1 3文件的写入 3 fputcsv 函数 CSV是一种比较常用的文件格式 一般以 csv作为扩展名 CSV格式把文件的一行看做是一条记录 记录里的字段使用逗号分隔 在PHP中使用fputcsv 函数可以把指定的数组格式化为符合CSV文件格式的内容 并写入文件指针指向的当前行 语法格式如下 intfputcsv resource handle array fields string delimiter string enclosure 说明 参数 handle是要写入的文件句柄 参数 fields是要格式化的数组 可选的 delimiter参数用于设定字段分界符 只允许一个字符 默认为逗号 可选的 enclosure参数设定字段环绕符 只允许一个字符 默认为双引号 例如 5 1 4文件的读取 1 读取任意长度fread 函数可以用于读取文件的内容 语法格式如下 stringfread resource handle int length 说明 参数 handle是已经打开的文件指针 length是指定读取的最大字节数 length的最大取值为8192 如果读完 length个字节数之前遇到文件结尾标志 EOF 则返回所读取的字符 并停止读取操作 如果读取成功则返回所读取的字符串 如果出错返回FALSE 例如 5 1 4文件的读取 程序运行结果显示一个网页 如图5 1所示 5 1 4文件的读取 注意 在读取文件后显示文件内容时 文本中可能含有无法直接显示的字符 如HTML标记 这时需要使用htmlspecialchars 函数将HTML标记转化为实体才能显示文件中的字符 例如 html目录下有一个1 php文件 文件内容为 如果读取文件后直接显示 则显示不出其中字符 要显示其中的内容可以使用以下代码 转化为实体并输出fclose handle 5 1 4文件的读取 2 读取整个文件 1 file 函数 file 函数用于将整个文件读取到一个数组中 语法格式如下 arrayfile string filename int flags resource context 参数 filename是读取的文件名 从PHP5起 flags可以是以下一个或多个常量 FILE USE INCLUDE PATH 在include path中查找文件 FILE IGNORE NEW LINES 在数组每个元素的末尾不要添加换行符 FILE SKIP EMPTY LINES 跳过空行 参数 context的意义与之前介绍的相同 这里不具体解释 例如 输出内容 这是文件1 5 1 4文件的读取 2 readfile 函数 readfile 函数用于输出一个文件的内容到浏览器中 语法格式如下 intreadfile string filename bool use include path resource context 例如 读取html目录下的1 txt文件中的内容到浏览器中 最终输出 这是文件19 5 1 4文件的读取 3 fpassthru 函数 fpassthru 函数可以将给定的文件指针从当前的位置读取到EOF 并把结果写到输出缓冲区 要使用这个函数 必须先使用fopen 函数打开文件 然后将文件指针作为参数传递给fpassthru 函数 fpassthru 函数把文件指针所指向的文件内容发送到标准输出 如果操作成功返回读取到的字节数 否则返回FALSE 例如 5 1 4文件的读取 4 file get contents 函数 file get contents 函数可以将整个或部分文件内容读取到一个字符串中 功能与依次调用fopen fread 及fclose 函数的功能一样 语法格式如下 stringfile get contents string filename bool use include path false resource context int offset int maxlen 说明 filename是要读取的文件名 可选参数 use include path用来触发include path查找 参数 context的意义与之前介绍的相同 这里不具体解释 offset可以指定从文件头开始的偏移量 函数可以返回从 offset所指定的位置开始长度为 maxlen的内容 如果失败 函数将返回FALSE 例如 5 1 4文件的读取 3 读取一行数据 1 fgets 函数 fgets 函数可以从文件中读出一行文本 语法格式如下 stringfgets resource handle int length 说明 handle是已经打开的文件句柄 可选参数 length指定了返回的最大字节数 考虑到行结束符 最多可以返回length 1个字节的字符串 如果没有指定 length 默认为1024个字节 例如 fclose handle 关闭文件 5 1 4文件的读取 2 fgetss 函数 fgetss 函数的作用与fgets 函数基本相同 也是从文件指针处读取一行数据 不过fgetss 函数会尝试从读取的文本中去掉任何HTML和PHP标记 语法格式如下 stringfgetss resource handle int length string allowable tags 例如 假设html目录下的1 txt第一行内容为 php 显示内容时不显示 php 的加黑效果可以使用以下代码 5 1 4文件的读取 3 fgetcsv 函数 fgetcsv 函数可以读取指定文件的当前行 使用CSV格式解析出字段 并返回一个包含这些字段的数组 语法格式如下 arrayfgetcsv resource handle int length string delimiter string enclosure string escape 5 1 4文件的读取 说明 handle是打开的文件句柄 length指定获取的字符的最大长度 可选的 delimiter参数用于设定字段分界符 只允许一个字符 默认为逗号 可选的 enclosure参数设定字段环绕符 只允许一个字符 默认为双引号 可选的 escape设定转义字符 只允许一个字符 默认是反斜杠 PHP5 3 0新增 例如 第 row 行 row for c 0 c 输出数组内容 fclose handle 5 1 4文件的读取 输出结果如下 第1行 学号姓名专业名性别第2行 1王林计算机男第3行 2李霞通信工程女 5 1 4文件的读取 4 读取一个字符fgetc 函数 fgetc 函数可以从文件指针处读取一个字符 语法格式为 stringfgetc resource handle 该函数返回 handle指针指向的文件中的一个字符 遇到EOF则返回FALSE 例如 char 5 1 4文件的读取 5 使用指定格式读取文件fscanf 函数 fscanf 函数可以读取文件中的数据 并根据指定的格式进行格式化 并返回一个数组 语法格式如下 mixedfscanf resource handle string format mixed 格式字符串中的任何空白会与输入流中的任何空白匹配 这意味着甚至格式字符串中的制表符 t 也会与输入流中的一个空格字符匹配 例如 html目录下的1 txt文件有以下几行数据 课程号课程名学分101计算机基础5102程序设计与语言4206离散数学4208数据结构4 5 1 4文件的读取 要显示这些数据可以使用以下代码 输出数据 fclose handle 5 1 5文件的上传与下载 1 文件上传 FILES是一个二维数组 上传后的文件信息可以使用以下形式获取 FILES file name 客户端上传的原文件名 其中 file 是HTML表单中文件域控件的名称 FILES file type 上传文件的类型 需要浏览器提供该信息的支持 常用的值有 text plain 表示普通文本文件 image gif 表示GIF图片 image pjpeg 表示JPEG图片 application msword 表示word文件 text html 表示html格式的文件 application pdf 表示PDF格式文件 audio mpeg 表示mp3格式的音频文件 application x zip compressed 表示ZIP格式的压缩文件 application octet stream 表示二进制流文件 如EXE文件 RAR文件 视频文件等 FILES file tmp name 文件被上传后在服务端储存的临时文件名 FILES file size 已上传文件的大小 单位为字节 FILES file error 错误信息代码 值为0表示没有错误发生 文件上传成功 值为1表示上传的文件超过了php ini文件中upload max filesize选项限制的值 值为2表示上传文件的大小超过了HTML表单中规定的最大值 值为3表示文件只有部分被上传 值为4表示没有文件被上传 值为5表示上传文件大小为0 5 1 5文件的上传与下载 例5 1 将由HTML表单上传的GIF图片文件移动到html目录下 新建EX5 1 php文件 输入代码 说明 运行程序后单击文件域的 浏览 按钮 选择一张GIF格式的图片后单击 上传文件 按钮 运行结果如图5 2所示 5 1 5文件的上传与下载 2 文件下载header 函数的作用是向浏览器发送正确的HTTP报头 报头指定了网页内容的类型 页面的属性等信息 header 函数的功能很多 这里只列出以下几点 页面跳转 如果header 函数的参数为 Location xxx 页面就会自动跳转到 xxx 指向的URL地址 例如 header Location 跳转到百度页面header Location first php 跳转到工作目录的first php页面 指定网页内容 例如 同样的一个XML格式的文件 如果header 函数的参数指定为 Content type application xml 浏览器会将其按照XML文件格式来解析 但如果是 Content type text xml 浏览器就会将其看做文本解析 5 1 5文件的上传与下载 文件下载 header 函数结合readfile 函数可以下载将要浏览的文件 例如 下载html目录下的1 txt文件可以使用以下代码 5 1 5文件的上传与下载 说明 以上这段代码执行后会弹出 文件下载 对话框 单击 保存 按钮选择新地址保存该文件即实现了文件的下载 新文件名为index txt 如图5 3所示 5 1 6其他常用文件函数 1 计算文件大小之前使用过的filesize 函数用于计算文件的大小 以字节为单位 例如 5 1 6其他常用文件函数 2 判断文件是否存在如果希望在不打开文件的情况下检查文件是否存在 可以使用file exists 函数 函数的参数为指定的文件或目录 如果该文件或目录存在 则返回TRUE 否则返回FALSE 例如 5 1 6其他常用文件函数 3 删除文件使用unlink 函数可以删除不需要的文件 如果成功 将返回TRUE 否则返回FALSE 例如 5 1 6其他常用文件函数 4 复制文件在文件操作中经常会遇到要复制一个文件或目录到某个文件夹的情况 在PHP中使用copy 函数来完成此操作 语法格式如下 boolcopy string source string dest resource context 说明 参数 source为需要复制的源文件 参数 dest为目标文件 参数 context PHP5 3 0新增 的意义与之前介绍的相同 这里不具体解释 复制后的新文件中内容与源文件完全相同 并且在复制文件的同时 也可以为新文件重新命名 如果复制成功则返回TRUE 否则返回FALSE 如果目标文件已经存在 则将被覆盖 例如 5 1 6其他常用文件函数 5 移动 重命名文件除了move uploaded file 函数 还有一个rename 函数也可以移动文件 语法格式如下 boolrename string oldname string newname resource context 说明 rename 函数主要用于对一个文件进行重命名 oldname是文件的旧名 newname为新的文件名 当然 如果 oldname与 newname的路径不相同 就实现了移动该文件的功能 例如 5 1 6其他常用文件函数 6 文件指针操作PHP中有很多操作文件指针的函数 如rewind ftell fseek 函数等 之前用过的feof 函数用于测试文件指针是否处于文件尾部 也属于文件指针操作函数 rewind 函数 用于重置文件的指针位置 使指针返回到文件头 它的参数只有一个 就是已经打开的指定文件的文件句柄 ftell 函数 可以以字节为单位 报告文件中指针的位置 也就是文件流中的偏移量 它的参数也是已经打开的文件句柄 fseek 函数 可以用于移动文件指针 语法格式如下 intfseek resource handle int offset int whence 5 1 6其他常用文件函数 说明 fseek 函数可以将文件指针 handle从 whence位置移动 offset个字节 新位置从文件头开始以字节数度量 以 whence指定的位置加上 offset 可选参数 whence的值可以是 SEEK SET 文件开始处 SEEK CUR 文件指针的当前位置 和SEEK END 文件的末尾 如果没有指定 whence 默认为SEEK SET 要移动到文件末尾的位置 需要给 offset传递一个负值 函数如果操作成功则返回0 否则返回 1 注意 移动到EOF之后的位置不算错误 例如 显示指针的当前位置 为0fseek handle 100 将指针移动100个字节echo 当前指针为 ftell handle 显示当前指针值为100rewind handle 重置指针位置echo 当前指针为 ftell handle 指针值为0 5 1 7实例 投票统计 例5 2 使用之前学过的文件操作方法 编写一个计算投票数量的程序 新建EX5 2 php文件 输入代码 保存后运行该文件 选择单选按钮进行投票 运行结果如图5 4所示 5 2图形处理 5 2 1安装PHP图像库在PHP中有的图形函数可以直接使用 但大多数函数需要安装GD2函数库后才能使用 有关GD2的详细信息 读者可以自行参考相关资料 在Windows平台下 安装GD2库很简单 PHP5中自带了GD2库扩展 就是PHP的ext目录中的php gd2 dll文件 其实本书在安装PHP时已经安装了所有的扩展库 包括GD库 PHP所能处理的图像格式取决于所安装的GD版本 以及其他GD可能用到的来访问这些图像格式的库 5 2 2创建图形 例5 3 绘制一条直线 并输出到浏览器中 新建EX5 3 php文件 输入以下代码 5 2 2创建图形 运行结果如图5 5所示 5 2 2创建图形 1 创建背景图形创建背景可以使用imagecreate 和imagecreatetruecolor 函数 这两个函数都可以创建一个空白的图形 并返回一个图像标志符 也可以称为句柄 供其他函数使用 语法格式如下 resourceimagecreate int x size int y size resourceimagecreatetruecolor int x size int y size 说明 x size是背景的宽度 y size是背景的高度 imagecreate 函数用于建立一个基于调色板的图形 创建后可改变背景颜色 imagecreatetruecolor 函数用于创建一个真彩色图形 背景颜色默认为黑色 如果图形创建成功 函数将返回一个句柄 如果失败 并不会像其他函数一样返回FALSE 这时可以使用die 函数来捕获错误信息 例如 image imagecreate 200 200 ordie 创建图形失败 5 2 2创建图形 2 使用已有图片创建新图形除了可以创建空白的背景图形外 还可以将已有的图片作为背景图形来创建新的图形 如imagecreatefromgif 函数可以根据已有的GIF图片创建新图形 imagecreatefromjpeg 函数可以根据已有的JPEG图片创建新图形 imagecreatefrompng 函数可以根据已有的PNG图片创建新图形 已有的图片也可以是远程的图片文件 例如 5 2 2创建图形 3 选择颜色在处理图形的操作中 经常需要为图形的某些部分分配颜色 这时颜色值的选择就需要使用imagecolorallocate 函数来完成 语法格式如下 intimagecolorallocate resource image int red int green int blue 5 2 2创建图形 说明 imagecolorallocate 函数返回一个标志符 代表了由给定的红 绿 蓝 RGB 值组成的颜色 red green和 blue分别是所需颜色的红 绿 蓝成分 这些参数是0 255的整数或者十六进制的0 x00 0 xFF imagecolorallocate 函数必须被调用以创建每一种用在 image所代表的图形中的颜色 例如 5 2 2创建图形 4 输出图形如果需要将已经绘制的图形输出到浏览器或文件中 可以使用相应的函数来完成 例如 使用imagegif 可以将图形以GIF格式输出到浏览器或文件 imagejpeg 将图形以JPEG格式输出 imagepng 函数将图形以PNG格式输出等 语法格式如下 boolimagepng resource image string filename boolimagegif resource image string filename boolimagejpeg resource image string filename int quality 5 2 2创建图形 不管输出什么格式的图片 都要使用header 函数向浏览器发送相应的头信息 如要输出GIF格式的图片应使用 header Content type image gif 输出JPEG格式的图片应使用 header Content type image jpeg PNG格式使用 header Content type image png 例如 5 2 2创建图形 5 清除资源为了节省资源 图片创建后返回的句柄如果不再使用 就要用imagedestroy 函数来释放与之相关的内存 例如 imagedestroy image 其中 image是已经创建的句柄 5 2 3绘制图形 1 绘制几何图形 1 画一个点 使用imagesetpixel 函数可以在已经创建的背景图形上画一个单一像素 即一个点 语法格式如下 boolimagesetpixel resource image int x int y int color 说明 imagesetpixel 函数在已经创建的图形 image上用 color颜色在 x y 坐标上画一个点 起始坐标从左上角开始 坐标为 0 0 到右下角的坐标为 x size y size 其中 x size和 y size是背景图形的宽和高 例如 5 2 3绘制图形 2 画一条线段 使用imageline 函数可以画出一条线段 语法格式如下 boolimageline resource image int x1 int y1 int x2 int y2 int color 说明 imageline 函数可以在已经创建的图形 image上使用 color颜色画出一条坐标从 x1 y1 到 x2 y2 的线段 例5 3中的线段正是使用imageline 函数画出来的 3 画一个矩形 几何学中最重要的图形就是矩形 绘制矩形可以使用imagerectangle 函数来完成 语法格式如下 boolimagerectangle resource image int x1 int y1 int x2 int y2 int color 说明 imagerectangle 函数在已经创建的图形 image上使用 color颜色画出一个矩形 矩形的左上角坐标为 x1 y1 右下角坐标为 x2 y2 5 2 3绘制图形 4 画一个椭圆 使用imageellipse 函数可以画出一个椭圆 语法格式如下 boolimageellipse resource image int cx int cy int w int h int color 说明 imageellipse 函数在图形 image上画一个中心坐标为 cx cy 的椭圆 w和 h分别指定了椭圆的宽度和高度 椭圆线条的颜色由 color指定 当椭圆的宽度和高度相等时 画出的将是一个圆 例5 4 使用imageellipse 函数画一个椭圆和一个圆 新建EX5 4 php文件 输入以下代码 5 2 3绘制图形 运行结果如图5 6所示 5 2 3绘制图形 5 画一个椭圆弧 imageellipse 函数用于创建一个完整的椭圆 而如果只要创建一个椭圆弧 可以使用imagearc 函数 语法格式如下 boolimagearc resource image int cx int cy int w int h int s int e int color 说明 imagearc 函数以坐标 cx cy 为中心在图形 image上画一个椭圆弧 w和 h分别指定了椭圆的宽度和高度 当高度和宽度相等时 画出来的就是圆弧 起始和结束点用 s和 e参数以角度指定 0 位于三点钟位置 以顺时针方向绘画 例如 imagearc image 100 100 150 150 0 180 color 画一个半圆弧imagearc image 200 100 150 150 0 360 color 画一个圆imagearc image 300 100 200 150 90 180 color 画一个椭圆弧 5 2 3绘制图形 6 画一个多边形 使用imagepolygon 函数可以画出一个多边形 语法格式如下 boolimagepolygon resource image array points int num points int color 例5 5 绘制一个五边形 新建EX5 5 php文件 输入以下代码 5 2 3绘制图形 运行结果如图5 7所示 5 2 3绘制图形 2 输出文本 1 输出一个字符 使用imagechar 函数可以在图形上水平输出一个字符 语法格式如下 boolimagechar resource image int font int x int y string c int color 说明 函数用颜色 color将字符 c画到 image的 x y 坐标处 这是字符串左上角坐标 如果 c是一个字符串 则只输出第一个字符 font表示字符串的字体 如果值为1 5中的一个数 则使用内置字体 值为5时字体最大 为1时最小 例如 imagechar image 5 50 50 C color 5 2 3绘制图形 2 输出字符串 使用imagestring 函数可以在已经创建的背景图形上输出字符串 语法格式如下 boolimagestring resource image int font int x int y string s int color 说明 函数用颜色 color将字符串 s画到 image的 x y 坐标处 这是字符串左上角坐标 例如 5 2 3绘制图形 3 使用指定字体输出字符串 使用imagettftext 函数可以在输出字符的同时指定输出字符所使用的字体 并根据参数的不同输出不同角度的字符串 语法格式如下 arrayimagettftext resource image float size float angle int x int y int color string fontfile string text 5 2 3绘制图形 例5 6 以不同角度输出字符串 并指定字体 新建EX5 6 php文件 输入以下代码 5 2 3绘制图形 运行结果如图5 8所示 5 2 3绘制图形 4 输出中文字符 中文字符不可以使用imagettftext 函数在图片中直接输出 如果要输出中文字符 需要先使用iconv 函数对中文字符进行编码 语法格式如下 stringiconv string in charset string out charset string str 说明 参数 in charset是中文字符原来的字符集 out charset是编码后的字符集 str是需要转换的中文字符串 函数最后返回编码后的字符串 这时使用imagettftext 函数就可以在图片中输出中文了 例如 5 2 3绘制图形 输出效果如图5 9所示 5 2 3绘制图形 3 绘制带填充色的几何图形在实际的绘图过程中 经常需要对图形中的某一区域填充颜色 这样图形才会变得更加美观 在PHP中可以使用imagefill 函数对某一区域进行颜色填充 语法格式如下 boolimagefill resource image int x int y int color 说明 函数在 image图形的坐标 x y 处用颜色 color执行区域填充 即与 x y 点颜色相同且相邻的点都会被填充上该颜色 例如 5 2 3绘制图形 1 画一个矩形并填色 使用imagefilledrectangle 函数可以画一个矩形 并使用指定颜色填充该矩形 语法格式如下 boolimagefilledrectangle resource image int x1 int y1 int x2 int y2 int color 说明 imagefilledrectangle 函数的功能和参数结构与imagerectangle 函数类似 不同之处在于 imagerectangle 函数的 color参数指定的是矩形线条的颜色 imagefilledrectangle 函数的 color参数指定的是整个矩形区域的颜色 例如 5 2 3绘制图形 2 画一个椭圆并填色 使用imagefilledellipse 函数可以在已经创建的图形上画一个椭圆 并使用指定颜色进行填充 语法格式如下 boolimagefilledellipse resource image int cx int cy int w int h int color 3 画一个椭圆弧并填色 函数imagefilledarc 可以画一个椭圆弧并填充颜色 语法格式如下 boolimagefilledarc resource image int cx int cy int w int h int s int e int color int style 例5 7 通过一个圆盘图 显示某人某月的生活支出分布情况 新建EX5 7 Hpage php文件 输入代码 新建EX5 7 Ppage php 输入代码 5 2 3绘制图形 运行EX5 7 Hpage php文件 在页面的表格中依次输入一组数据 如图5 10所示 单击 提交 按钮 结果如图5 11所示 5 2 4图形的处理 1 颜色处理 1 指定颜色填充 使用imagefilltoborder 函数可以为指定点进行颜色填充 如果遇到指定颜色的边界时 则停止填充 语法格式如下 boolimagefilltoborder resource image int x int y int border int color 说明 该函数从坐标 x y 开始用 color颜色执行区域填充 直到碰到颜色为 border的边界为止 边界内的所有颜色都会被填充 例如 5 2 4图形的处理 2 定义透明色 使用imagecolorallocatealpha 函数也可以为指定的图形分配颜色 还可以设置颜色的透明度 语法格式如下 intimagecolorallocatealpha resource image int red int green int blue int alpha 说明 imagecolorallocatealpha 函数比imagecolorallocate 函数多了一个参数 alpha 这个参数就用于设置颜色的透明度 其值从0到127 0表示完全不透明 127表示完全透明 例如 5 2 4图形的处理 2 复制图片的一部分使用imagecopy 函数能够复制图片的一部分到另一个图片中 语法格式如下 boolimagecopy resource dst im resource src im int dst x int dst y int src x int src y int src w int src h 说明 将 src im中坐标从 src x src y 开始 宽度为 src w 高度为 src h的一部分复制到 dst im中坐标为 dst x dst y 的位置上 例5 8 复制图片的一部分到另一张图片中 图片位于工作目录中的image目录下 新建EX5 8 php文件 输入以下代码 5 2 4图形的处理 运行结果如图5 12所示 5 2 4图形的处理 3 复制图片并调整大小使用imagecopyresized 函数也可以实现imagecopy 函数的功能 并可以对复制的图片大小进行调整 语法格式如下 boolimagecopyresized resource dst image resource src image int dst x int dst y int src x int src y int dst w int dst h int src w int src h 说明 imagecopyresized 函数比imagecopy 函数多了两个参数 dst w和 dst h 这两个参数表示将复制的图片宽度和高度分别调整为 dst w和 dst h 即实现了图片的缩放功能 例如 imagecopyresized image1 image2 50 5 50 0 50 50 160 160 复制图片的一部分并调整大小 例5 9 上传图片 并用缩略图显示 新建EX5 9 php文件 输入代码 5 2 4图形的处理 运行EX5 9 php文件 选择一幅JPEG图片 单击 提交 按钮 结果如图5 13所示 5 2 4图形的处理 4 旋转图像使用imagerotate 函数可以将图像旋转给定角度 语法格式如下 resourceimagerotate resource src im float angle int bgd color int ignore transparent 5 2 4图形的处理 说明 参数 src im是给定的图像 angle是指定的旋转角度 bgd color指定了旋转后没有覆盖到的部分的颜色 旋转的中心是图像的中心 旋转后的图像会按比例缩小以适合目标图像的大小 边缘不会被剪去 可选参数 ignore transparent是PHP5 1 0新增加的 若被设为非零值 则透明色会被忽略 否则会被保留 例如 将图像旋转45 后显示 5 2 5其他的图形函数 1 取得图形信息之前介绍的imagesx 和imagesy 函数可以获取图形的宽和高 这里介绍的getimagesize 函数可以获取指定图形的尺寸 宽度 高度和类型等信息 该函数将这些信息以数组的形式返回 如果图片指定的图形不是有效的文件 则返回FALSE 例如 400 1 400 2 1 3 width 400 height 400 bits 8 channels 3 mime image gif 5 2 5其他的图形函数 2 设定画线使用imagesetthickness 函数可以设置画几何图形时画线的宽度 语法格式如下 boolimagesetthickness resource image int thickness 说明 该函数将画线宽度设为 thickness个像素 例如 5 2 6实例 自动生成验证码 例5 10 在制作一个用户留言页面时需要进行验证 本例自动生成验证码图片 用户输入验证码图片中字符 系统进行验证 新建EX5 10 image php文件 用于产生验证码图片 输入代码 新建EX5 10 php文件 用于输入验证码图片中字符 系统进行验证 输入代码 运行结果如图5 14所示 5 3日期和时间 5 3 1UNIX时间戳在当前大多数的UNIX系统中 保存当前日期和时间的方法是 保存格林尼治标准时间从1970年1月1日零点起到当前时刻的秒数 以32为整列表示 1970年1月1日零点也称为UNIX纪元 在Windows系统下也可以使用UNIX时间戳 简称为时间戳 但如果时间是在1970年以前或2038年以后 处理的时候可能会出现问题 PHP在处理有些数据 特别是对数据库中时间类型的数据进行格式化时 经常需要先将时间类型的数据转化为UNIX时间戳再进行处理 另外 不同的数据库系统对时间类型的数据不能兼容转换 这时就需要将时间转化为UNIX时间戳 再对时间戳进行操作 这样就实现了不同数据库系统的跨平台性 5 3 2时间转化为时间戳 如果要将用字符串表达的日期和时间转化为时间戳的形式 可以使用strtotime 函数 语法格式如下 intstrtotime string time int now 说明 time是包含英语日期格式的字符串 time值如果有毫秒数将被忽略 其值相对于 now参数给出的时间 如果没有给出则默认使用系统当前时间 例如 输出1408147200echostrtotime 2014 08 1610 24 30 输出1408184670echostrtotime 10September2014 输出1410307200 5 3 2时间转化为时间戳 另一个取得日期的UNIX时间戳的函数是mktime 函数 语法格式如下 intmktime int hour int minute int second int month int day int year 说明 hour表示小时数 minute表示分钟数 second表示秒数 month表示月份 day表示天数 year表示年份 year的合法范围是1901 2038之间 不过此限制自PHP5 1 0起已被克服了 如果所有的参数都为空 则默认为当前时间 例如 输出1408147200echo timenum2 mktime 10 24 30 8 16 2014 输出1408184670 5 3 3获取日期和时间 1 date 函数PHP中最常用的日期和时间函数就是date 函数 该函数的作用是将时间戳按照给定的格式转化为具体的日期和时间字符串 语法格式如下 stringdate string format int timestamp 说明 format指定了转化后的日期和时间的格式 timestamp是需要转化的时间戳 如果省略则使用本地当前时间 即默认值为time 函数的值 time 函数返回当前时间的时间戳 例如 echotime 输出当前时间的时间戳date函数的 format参数的取值如表5 2所示 5 3 3获取日期和时间 例如 输出12th May 2014echodate Y m d 输出2014 05 12echodate lM strtotime 2014 08 16 输出SaturdayAugechodate l mktime 0 0 0 7 1 2000 输出Saturdayechodate U 输出当前时间的时间戳 5 3 3获取日期和时间 2 getdate 函数使用getdate 函数也可以获取日期和时间信息 语法格式如下 arraygetdate int timestamp 说明 timestamp是要转化的时间戳 如果不给出则使用当前时间 函数根据 timestamp返回一个包含日期和时间信息的数组 数组的键名和值如表5 3所示 5 3 3获取日期和时间 例如 6 minutes 29 hours 3 mday 12 wday 1 mon 5 year 2014 yday 131 weekday Monday month May 0 1399865346 print r array2 输出Array seconds 0 minutes 0 hours 0 mday 16 wday 6 mon 8 year 2014 yday 227 weekday Saturday month August 0 1408147200 5 3 4其他日期和时间函数 1 日期和时间的计算由于时间戳是32位整型数据 所以通过对时间戳进行加减法运算可计算两个时间的差值 例如 5 3 4其他日期和时间函数 2 检查日期checkdate 函数可以用于检查一个日期数据是否有效 语法格式如下 boolcheckdate int month int day int year 说明 year的值是从1到32767 month的值从1到12 day的值在给定的 month值所具有的天数范围内 其中闰年的情况也考虑在内 当给定的日期是有效的日期时 函数返回TRUE 否则返回FALSE 例如 5 3 4其他日期和时间函数 3 设置时区系统默认的是格林尼治标准时间 所以显示当前时间时可能与本地时间会有差别 PHP提供了可以修改时区的函数date default timezone set 语法格式如下 booldate default timezone set string timezone identifier 参数 timezone identifier为要指定的时区 中国大陆可用的值是Asia Chongqing Asia Shanghai Asia Urumqi 依次为重庆 上海 乌鲁木齐 北京时间可以使用PRC 例如 5 3 5实例 生成日历 例5 11 输出某个月的日历 要求年份和月份可以进行选择 新建EX5 11 php文件 输入代码 运行结果如图5 15所示
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!