PHP常用功能模块.ppt

上传人:小飞机 文档编号:6514664 上传时间:2023-11-08 格式:PPT 页数:92 大小:1.84MB
返回 下载 相关 举报
PHP常用功能模块.ppt_第1页
第1页 / 共92页
PHP常用功能模块.ppt_第2页
第2页 / 共92页
PHP常用功能模块.ppt_第3页
第3页 / 共92页
PHP常用功能模块.ppt_第4页
第4页 / 共92页
PHP常用功能模块.ppt_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《PHP常用功能模块.ppt》由会员分享,可在线阅读,更多相关《PHP常用功能模块.ppt(92页珍藏版)》请在三一办公上搜索。

1、第5章 PHP常用功能模块,5.1 目录与文件操作,5.2 图 形 处 理,5.3 日期和时间,5.1 目录与文件操作,5.1.1 目录操作1创建和删除目录使用mkdir()函数可以根据提供的目录名或目录的全路径,创建新的目录,如果创建成功则返回TRUE,否则返回FALSE。例如:使用rmdir()函数可以删除一个空目录,但是必须具有相应的权限。如果目录不为空,必须先删除目录中的文件才能删除目录。例如:,5.1.1 目录操作,2获取和更改当前工作目录当前工作目录是指正在运行的文件所处的目录。使用getcwd()函数可以取得当前的工作目录,该函数没有参数。成功则返回当前的工作目录,失败则返回FA

2、LSE。例如:使用chdir()函数可以设置当前的工作目录,该函数的参数是新的当前目录,例如:;/当前工作目录为C:wampwwwPractice mkdir(./good);/在Apache文件根目录中建立good目录 chdir(./good);/设置good目录为当前工作目录 echo getcwd();/输出C:wampwwwgood?,5.1.1 目录操作,3打开和关闭目录句柄目录的访问是通过句柄实现的,使用opendir()函数可以打开一个目录句柄,该函数的参数是打开的目录路径,打开成功则返回TRUE,失败则返回FALSE,打开句柄后其他函数就可以调用该句柄。为了节省服务器资源,使

3、用完一个已经打开的目录句柄后,应该使用colsedir()函数关闭这个句柄。例如:,5.1.1 目录操作,4读取目录内容例如,假设根目录的good目录下已经创建了一个目录html,其中保存了1.php、2.php、3.php这3个文件,要遍历html目录可以使用如下代码:;/输出文件名 closedir($dir_handle);/关闭目录句柄 else echo 打开目录失败!;?,5.1.1 目录操作,输出结果如下:.1.php 2.php 3.php,5.1.1 目录操作,5获取指定路径的目录和文件scandir()函数列出指定路径中的目录和文件,语法格式如下:array scandir

4、(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()函数,语法格式如下:resource fopen(string$filename,string$mode,bool$use_include_path,resou

5、rce$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打开)才使用,它是一个资源

6、变量,其中保存着与fopen()函数具体的操作对象有关的一些数据。如果fopen()打开的是一个HTTP地址,那么这个变量记录着HTTP请求的请求类型、HTTP版本及其他头信息;如果打开的是FTP地址,记录的可能是FTP的被动/主动模式。例如:,5.1.2 文件的打开与关闭,2关闭文件文件处理完毕后,需要使用fclose()函数关闭文件,语法格式如下:bool fclose(resource$handle)参数$handle为要打开的文件指针,文件指针必须有效,如果关闭成功则返回TRUE,否则返回FALSE。例如:,5.1.3 文件的写入,例如,下面的代码将在D盘data目录下新建一个名为in

7、dex.txt的文件(data目录存在):(1)fwrite()函数。文件打开后,向文件中写入内容可以使用fwrite()函数,语法格式如下:int fwrite(resource$handle,string$string,int$length),5.1.3 文件的写入,如果字符串$string中字节数小于$length,则写入整个字符串后就停止写入。如果写入操作成功,fwrite()函数将返回写入的字节数,出现错误时返回FALSE。例如:;echo 写入的字节数为.$num.个;/成功写入的字符个数为14个 fclose($handle);/关闭文件 else echo 文件写入失败;?,5

8、.1.3 文件的写入,(2)file_put_contents()函数。PHP 5还引入了file_put_contents()函数。这个函数的功能与依次调用fopen()、fwrite()及fclose()函数的功能一样。语法格式如下:int file_put_contents(string$filename,string$data,int$flags,resource$context)写入成功后函数返回写入的字节数,否则返回FALSE。例如:,5.1.3 文件的写入,(3)fputcsv()函数。CSV是一种比较常用的文件格式,一般以.csv作为扩展名。CSV格式把文件的一行看做是一条记录

9、,记录里的字段使用逗号分隔。在PHP中使用fputcsv()函数可以把指定的数组格式化为符合CSV文件格式的内容,并写入文件指针指向的当前行。语法格式如下:int fputcsv(resource$handle,array$fields,string$delimiter,string$enclosure)说明:参数$handle是要写入的文件句柄。参数$fields是要格式化的数组。可选的$delimiter参数用于设定字段分界符(只允许一个字符),默认为逗号。可选的$enclosure参数设定字段环绕符(只允许一个字符),默认为双引号。例如:,5.1.4 文件的读取,1读取任意长度fread

10、()函数可以用于读取文件的内容,语法格式如下:string fread(resource$handle,int$length)说明:参数$handle是已经打开的文件指针,$length是指定读取的最大字节数,$length的最大取值为8192。如果读完$length个字节数之前遇到文件结尾标志(EOF),则返回所读取的字符,并停止读取操作。如果读取成功则返回所读取的字符串,如果出错返回FALSE。例如:,5.1.4 文件的读取,程序运行结果显示一个网页,如图5.1所示。,5.1.4 文件的读取,注意:在读取文件后显示文件内容时,文本中可能含有无法直接显示的字符,如HTML标记。这时需要使用h

11、tmlspecialchars()函数将HTML标记转化为实体才能显示文件中的字符。例如,html目录下有一个1.php文件,文件内容为“”,如果读取文件后直接显示,则显示不出其中字符,要显示其中的内容可以使用以下代码:转化为实体并输出 fclose($handle);?,5.1.4 文件的读取,2读取整个文件(1)file()函数。file()函数用于将整个文件读取到一个数组中,语法格式如下:array file(string$filename,int$flags,resource$context)参数$filename是读取的文件名。从PHP 5起,$flags可以是以下一个或多个常量。F

12、ILE_USE_INCLUDE_PATH:在 include_path 中查找文件。FILE_IGNORE_NEW_LINES:在数组每个元素的末尾不要添加换行符。FILE_SKIP_EMPTY_LINES:跳过空行。参数$context的意义与之前介绍的相同,这里不具体解释。例如:;/输出内容这是文件1?,5.1.4 文件的读取,(2)readfile()函数。readfile()函数用于输出一个文件的内容到浏览器中,语法格式如下:int readfile(string$filename,bool$use_include_path,resource$context)例如,读取html目录下的

13、1.txt文件中的内容到浏览器中:最终输出:这是文件19,5.1.4 文件的读取,(3)fpassthru()函数。fpassthru()函数可以将给定的文件指针从当前的位置读取到EOF,并把结果写到输出缓冲区。要使用这个函数,必须先使用fopen()函数打开文件,然后将文件指针作为参数传递给fpassthru()函数,fpassthru()函数把文件指针所指向的文件内容发送到标准输出。如果操作成功返回读取到的字节数,否则返回FALSE。例如:,5.1.4 文件的读取,(4)file_get_contents()函数。file_get_contents()函数可以将整个或部分文件内容读取到一个

14、字符串中,功能与依次调用fopen()、fread()及fclose()函数的功能一样。语法格式如下:string file_get_contents(string$filename,bool$use_include_path=false,resource$context,int$offset,int$maxlen)说明:$filename是要读取的文件名,可选参数$use_include_path用来触发include_path查找;参数$context的意义与之前介绍的相同,这里不具体解释;$offset可以指定从文件头开始的偏移量,函数可以返回从$offset所指定的位置开始长度为$ma

15、xlen的内容。如果失败,函数将返回FALSE。例如:,5.1.4 文件的读取,3读取一行数据(1)fgets()函数。fgets()函数可以从文件中读出一行文本,语法格式如下:string fgets(resource$handle,int$length)说明:$handle是已经打开的文件句柄,可选参数$length指定了返回的最大字节数,考虑到行结束符,最多可以返回length1个字节的字符串。如果没有指定$length,默认为1024个字节。例如:;fclose($handle);/关闭文件?,5.1.4 文件的读取,(2)fgetss()函数。fgetss()函数的作用与fgets(

16、)函数基本相同,也是从文件指针处读取一行数据,不过fgetss()函数会尝试从读取的文本中去掉任何HTML和PHP标记。语法格式如下:string fgetss(resource$handle,int$length,string$allowable_tags)例如,假设html目录下的1.txt第一行内容为“php”,显示内容时不显示“php”的加黑效果可以使用以下代码:,5.1.4 文件的读取,(3)fgetcsv()函数。fgetcsv()函数可以读取指定文件的当前行,使用CSV格式解析出字段,并返回一个包含这些字段的数组。语法格式如下:array fgetcsv(resource$han

17、dle,int$length,string$delimiter,string$enclosure,string$escape),5.1.4 文件的读取,说明:$handle是打开的文件句柄,$length指定获取的字符的最大长度。可选的$delimiter参数用于设定字段分界符(只允许一个字符),默认为逗号。可选的$enclosure参数设定字段环绕符(只允许一个字符),默认为双引号。可选的$escape设定转义字符(只允许一个字符),默认是反斜杠(新增)。例如:第.$row.行:;$row+;for($c=0;$c;/输出数组内容 fclose($handle);?,5.1.4 文件的读取,

18、输出结果如下:第1行:学号 姓名 专业名 性别第2行:1 王林 计算机 男第3行:2 李霞 通信工程 女,5.1.4 文件的读取,4读取一个字符fgetc()函数。fgetc()函数可以从文件指针处读取一个字符,语法格式为:string fgetc(resource$handle)该函数返回$handle指针指向的文件中的一个字符,遇到EOF则返回FALSE。例如::$char);?,5.1.4 文件的读取,5使用指定格式读取文件fscanf()函数。fscanf()函数可以读取文件中的数据,并根据指定的格式进行格式化,并返回一个数组。语法格式如下:mixed fscanf(resource$

19、handle,string$format,mixed&$.)格式字符串中的任何空白会与输入流中的任何空白匹配。这意味着甚至格式字符串中的制表符“t”也会与输入流中的一个空格字符匹配。例如,html目录下的1.txt文件有以下几行数据:课程号 课程名 学分101 计算机基础 5102 程序设计与语言 4206 离散数学 4208 数据结构 4,5.1.4 文件的读取,要显示这些数据可以使用以下代码:;/输出数据 fclose($handle);?,5.1.5 文件的上传与下载,1文件上传$_FILES是一个二维数组,上传后的文件信息可以使用以下形式获取:$FILESfilename。客户端上传的

20、原文件名。其中,“file”是HTML表单中文件域控件的名称。$FILESfiletype。上传文件的类型,需要浏览器提供该信息的支持。常用的值有:“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/octe

21、t-stream”表示二进制流文件,如EXE文件、RAR文件、视频文件等。$FILESfiletmp_name。文件被上传后在服务端储存的临时文件名。$FILESfilesize。已上传文件的大小,单位为字节。$FILESfileerror。错误信息代码。值为0表示没有错误发生,文件上传成功;值为1表示上传的文件超过了php.ini文件中upload_max_filesize选项限制的值;值为2表示上传文件的大小超过了HTML表单中规定的最大值;值为3表示文件只有部分被上传;值为4表示没有文件被上传;值为5表示上传文件大小为0。,5.1.5 文件的上传与下载,【例5.1】将由HTML表单上传的

22、GIF图片文件移动到html目录下。新建EX5_1.php文件,输入代码。说明:运行程序后单击文件域的【浏览】按钮,选择一张GIF格式的图片后单击【上传文件】按钮,运行结果如图5.2所示。,5.1.5 文件的上传与下载,2文件下载header()函数的作用是向浏览器发送正确的HTTP报头,报头指定了网页内容的类型、页面的属性等信息。header()函数的功能很多,这里只列出以下几点:页面跳转。如果header()函数的参数为“Location:xxx”,页面就会自动跳转到“xxx”指向的URL地址。例如:header(Location:http:/);/跳转到百度页面header(Locati

23、on: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 文件的上传与下载,说明:以上这段代码执行后会弹出“文件下载”对话框,单击【保

24、存】按钮选择新地址保存该文件即实现了文件的下载,新文件名为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

25、其他常用文件函数,4复制文件在文件操作中经常会遇到要复制一个文件或目录到某个文件夹的情况,在PHP中使用copy()函数来完成此操作,语法格式如下:bool copy(string$source,string$dest,resource$context)说明:参数$source为需要复制的源文件,参数$dest为目标文件,参数$context(新增)的意义与之前介绍的相同,这里不具体解释。复制后的新文件中内容与源文件完全相同,并且在复制文件的同时,也可以为新文件重新命名。如果复制成功则返回TRUE,否则返回FALSE。如果目标文件已经存在,则将被覆盖。例如:,5.1.6 其他常用文件函数,5移

26、动、重命名文件除了move_uploaded_file()函数,还有一个rename()函数也可以移动文件,语法格式如下:bool rename(string$oldname,string$newname,resource$context)说明:rename()函数主要用于对一个文件进行重命名,$oldname是文件的旧名,$newname为新的文件名。当然,如果$oldname与$newname的路径不相同,就实现了移动该文件的功能,例如:,5.1.6 其他常用文件函数,6文件指针操作PHP中有很多操作文件指针的函数,如rewind()、ftell()、fseek()函数等。之前用过的feo

27、f()函数用于测试文件指针是否处于文件尾部,也属于文件指针操作函数。rewind()函数。用于重置文件的指针位置,使指针返回到文件头。它的参数只有一个,就是已经打开的指定文件的文件句柄。ftell()函数。可以以字节为单位,报告文件中指针的位置,也就是文件流中的偏移量。它的参数也是已经打开的文件句柄。fseek()函数。可以用于移动文件指针,语法格式如下:int fseek(resource$handle,int$offset,int$whence),5.1.6 其他常用文件函数,说明:fseek()函数可以将文件指针$handle从$whence位置移动$offset个字节。新位置从文件头开

28、始以字节数度量,以$whence指定的位置加上$offset。可选参数$whence的值可以是:SEEK_SET(文件开始处)、SEEK_CUR(文件指针的当前位置)和SEEK_END(文件的末尾)。如果没有指定$whence,默认为SEEK_SET,要移动到文件末尾的位置,需要给$offset 传递一个负值。函数如果操作成功则返回0,否则返回1。注意,移动到EOF之后的位置不算错误。例如:;/显示指针的当前位置,为0 fseek($handle,100);/将指针移动100个字节 echo 当前指针为:.ftell($handle).;/显示当前指针值为100 rewind($handle)

29、;/重置指针位置 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文件),其

30、实本书在安装PHP时已经安装了所有的扩展库,包括GD库。PHP所能处理的图像格式取决于所安装的GD版本,以及其他GD可能用到的来访问这些图像格式的库。,5.2.2 创建图形,【例5.3】绘制一条直线,并输出到浏览器中。新建EX5_3.php文件,输入以下代码:,5.2.2 创建图形,运行结果如图5.5所示。,5.2.2 创建图形,1创建背景图形创建背景可以使用imagecreate()和imagecreatetruecolor()函数,这两个函数都可以创建一个空白的图形,并返回一个图像标志符(也可以称为句柄),供其他函数使用。语法格式如下:resource imagecreate(int$x_

31、size,int$y_size)resource imagecreatetruecolor(int$x_size,int$y_size)说明:$x_size是背景的宽度,$y_size是背景的高度,imagecreate()函数用于建立一个基于调色板的图形,创建后可改变背景颜色。imagecreatetruecolor()函数用于创建一个真彩色图形,背景颜色默认为黑色。如果图形创建成功,函数将返回一个句柄,如果失败,并不会像其他函数一样返回FALSE,这时可以使用die()函数来捕获错误信息。例如:$image=imagecreate(200,200)or die(创建图形失败!);,5.2.

32、2 创建图形,2使用已有图片创建新图形除了可以创建空白的背景图形外,还可以将已有的图片作为背景图形来创建新的图形。如imagecreatefromgif()函数可以根据已有的GIF图片创建新图形,imagecreatefromjpeg()函数可以根据已有的JPEG图片创建新图形,$imagecreatefrompng()函数可以根据已有的PNG图片创建新图形。已有的图片也可以是远程的图片文件。例如:,5.2.2 创建图形,3选择颜色在处理图形的操作中,经常需要为图形的某些部分分配颜色,这时颜色值的选择就需要使用imagecolorallocate()函数来完成。语法格式如下:int image

33、colorallocate(resource$image,int$red,int$green,int$blue),5.2.2 创建图形,说明:imagecolorallocate()函数返回一个标志符,代表了由给定的红、绿、蓝(RGB)值组成的颜色。$red、$green和$blue分别是所需颜色的红、绿、蓝成分。这些参数是0255的整数或者十六进制的0 x000 xFF。imagecolorallocate()函数必须被调用以创建每一种用在$image所代表的图形中的颜色。例如:,5.2.2 创建图形,4输出图形如果需要将已经绘制的图形输出到浏览器或文件中,可以使用相应的函数来完成。例如,使

34、用imagegif()可以将图形以GIF格式输出到浏览器或文件,imagejpeg()将图形以JPEG格式输出,imagepng()函数将图形以PNG格式输出等。语法格式如下:bool imagepng(resource$image,string$filename)bool imagegif(resource$image,string$filename)bool imagejpeg(resource$image,string$filename,int$quality),5.2.2 创建图形,不管输出什么格式的图片,都要使用header()函数向浏览器发送相应的头信息,如要输出GIF格式的图片应

35、使用:“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()函数可以在已经创建的背景图形

36、上画一个单一像素,即一个点。语法格式如下:bool imagesetpixel(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()函数可以画出一条线段,语法格式如下:bool imageline(resource$image,int$x

37、1,int$y1,int$x2,int$y2,int$color)说明:imageline()函数可以在已经创建的图形$image上使用$color颜色画出一条坐标从($x1,$y1)到($x2,$y2)的线段。例5.3中的线段正是使用imageline()函数画出来的。(3)画一个矩形。几何学中最重要的图形就是矩形,绘制矩形可以使用imagerectangle()函数来完成。语法格式如下:bool imagerectangle(resource$image,int$x1,int$y1,int$x2,int$y2,int$color)说明:imagerectangle()函数在已经创建的图形$

38、image上使用$color颜色画出一个矩形,矩形的左上角坐标为($x1,$y1),右下角坐标为($x2,$y2)。,5.2.3 绘制图形,(4)画一个椭圆。使用imageellipse()函数可以画出一个椭圆,语法格式如下:bool imageellipse(resource$image,int$cx,int$cy,int$w,int$h,int$color)说明:imageellipse()函数在图形$image上画一个中心坐标为($cx,$cy)的椭圆。$w和$h分别指定了椭圆的宽度和高度,椭圆线条的颜色由$color指定。当椭圆的宽度和高度相等时,画出的将是一个圆。【例5.4】使用im

39、ageellipse()函数画一个椭圆和一个圆。新建EX5_4.php文件,输入以下代码:,5.2.3 绘制图形,运行结果如图5.6所示。,5.2.3 绘制图形,(5)画一个椭圆弧。imageellipse()函数用于创建一个完整的椭圆,而如果只要创建一个椭圆弧,可以使用imagearc()函数。语法格式如下:bool imagearc(resource$image,int$cx,int$cy,int$w,int$h,int$s,int$e,int$color)说明:imagearc()函数以坐标($cx,$cy)为中心在图形$image上画一个椭圆弧。$w和$h分别指定了椭圆的宽度和高度,当

40、高度和宽度相等时,画出来的就是圆弧。起始和结束点用$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()函数可以画出一个多边形,语法格式如下:bool imagepolygon(resource

41、$image,array$points,int$num_points,int$color)【例5.5】绘制一个五边形。新建EX5_5.php文件,输入以下代码:,5.2.3 绘制图形,运行结果如图5.7所示。,5.2.3 绘制图形,2输出文本(1)输出一个字符。使用imagechar()函数可以在图形上水平输出一个字符,语法格式如下:bool imagechar(resource$image,int$font,int$x,int$y,string$c,int$color)说明:函数用颜色$color将字符$c画到$image的($x,$y)坐标处(这是字符串左上角坐标)。如果$c是一个字符串,

42、则只输出第一个字符。$font表示字符串的字体,如果值为15中的一个数,则使用内置字体,值为5时字体最大,为1时最小。例如:imagechar($image,5,50,50,C,$color);,5.2.3 绘制图形,(2)输出字符串。使用imagestring()函数可以在已经创建的背景图形上输出字符串,语法格式如下:bool imagestring(resource$image,int$font,int$x,int$y,string$s,int$color)说明:函数用颜色$color将字符串$s画到$image的($x,$y)坐标处(这是字符串左上角坐标)。例如:,5.2.3 绘制图形,

43、(3)使用指定字体输出字符串。使用imagettftext()函数可以在输出字符的同时指定输出字符所使用的字体,并根据参数的不同输出不同角度的字符串,语法格式如下:array imagettftext(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)输出中文字符。中文字符不可以使用

44、imagettftext()函数在图片中直接输出,如果要输出中文字符,需要先使用iconv()函数对中文字符进行编码,语法格式如下:string iconv(string$in_charset,string$out_charset,string$str)说明:参数$in_charset是中文字符原来的字符集,$out_charset是编码后的字符集,$str是需要转换的中文字符串。函数最后返回编码后的字符串。这时使用imagettftext()函数就可以在图片中输出中文了。例如:,5.2.3 绘制图形,输出效果如图5.9所示。,5.2.3 绘制图形,3绘制带填充色的几何图形在实际的绘图过程中,

45、经常需要对图形中的某一区域填充颜色,这样图形才会变得更加美观。在PHP中可以使用imagefill()函数对某一区域进行颜色填充,语法格式如下:bool imagefill(resource$image,int$x,int$y,int$color)说明:函数在$image图形的坐标($x,$y)处用颜色$color执行区域填充,即与($x,$y)点颜色相同且相邻的点都会被填充上该颜色。例如:,5.2.3 绘制图形,(1)画一个矩形并填色。使用imagefilledrectangle()函数可以画一个矩形,并使用指定颜色填充该矩形。语法格式如下:bool imagefilledrectangle

46、(resource$image,int$x1,int$y1,int$x2,int$y2,int$color)说明:imagefilledrectangle()函数的功能和参数结构与imagerectangle()函数类似,不同之处在于,imagerectangle()函数的$color参数指定的是矩形线条的颜色,imagefilledrectangle()函数的$color参数指定的是整个矩形区域的颜色。例如:,5.2.3 绘制图形,(2)画一个椭圆并填色。使用imagefilledellipse()函数可以在已经创建的图形上画一个椭圆,并使用指定颜色进行填充。语法格式如下:bool imag

47、efilledellipse(resource$image,int$cx,int$cy,int$w,int$h,int$color)(3)画一个椭圆弧并填色。函数imagefilledarc()可以画一个椭圆弧并填充颜色,语法格式如下:bool imagefilledarc(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 绘制图形

48、,运行EX5_7_Hpage.php文件,在页面的表格中依次输入一组数据,如图5.10所示。单击【提交】按钮,结果如图5.11所示。,5.2.4 图形的处理,1颜色处理(1)指定颜色填充。使用imagefilltoborder()函数可以为指定点进行颜色填充,如果遇到指定颜色的边界时,则停止填充。语法格式如下:bool imagefilltoborder(resource$image,int$x,int$y,int$border,int$color)说明:该函数从坐标($x,$y)开始用$color颜色执行区域填充,直到碰到颜色为$border的边界为止。边界内的所有颜色都会被填充。例如:,5

49、.2.4 图形的处理,(2)定义透明色。使用imagecolorallocatealpha()函数也可以为指定的图形分配颜色,还可以设置颜色的透明度。语法格式如下:int imagecolorallocatealpha(resource$image,int$red,int$green,int$blue,int$alpha)说明:imagecolorallocatealpha()函数比imagecolorallocate()函数多了一个参数$alpha,这个参数就用于设置颜色的透明度,其值从0到127。0表示完全不透明,127表示完全透明。例如:,5.2.4 图形的处理,2复制图片的一部分使用i

50、magecopy()函数能够复制图片的一部分到另一个图片中,语法格式如下:bool imagecopy(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.

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号