《php时间文件处理.ppt》由会员分享,可在线阅读,更多相关《php时间文件处理.ppt(30页珍藏版)》请在三一办公上搜索。
1、php中时间文件处理,目标,掌握php中间时间函数时间之间的相互转化php中间文件操作函数php中间文件上传处理,php时区设置,php中间通过date()函数来得到时间,其默认得到的是标准格林尼治时间。两种方法修改php中间的时区1:修改php.ini文件,找到;date:timezone=项,修改成date;timezone=Asia/Hong_Kong,重启apache服务器2:代码中间设置date_default_timezone_set(timezone);,代码,echo date(Y-m-d H:i:s).;date_default_timezone_set(PRC);echo
2、date(Y-m-d H:i:s).;echo date_default_timezone_get().;,mktime方法,mktime函数得到一个时间的时间戳值int mktime(int hour,int minute,int second,int month,int day,int year,int isdes);最后一个参数为1(夏令时)-1(默认值,表示非夏令时)代码:echo date(时间戳(当前时间到1970年1月1号0点整的毫米数):,mktime().;echo date(Y-m-d,mktime().;echo date(H-i-s,mktime().;,得到当前时间戳
3、,int time();返回当前时间戳代码演示:(如何将时间戳变为时间)echo time().;echo 现在时间:.date(Y-m-d).;echo 下周此时:.date(Y-m-d,time()+7*24*60*60);,时间和字符串的转化,int strtotime(string time):得到字符串对应的时间戳echo strtotime(now).;echo 输出当前时间:.date(Y-m-d H:i:s,strtotime(now).;echo strtotime(+3 day).;echo 输出当前时间:.date(Y-m-d H:i:s,strtotime(+3 day
4、).;echo strtotime(+1 week).;echo 输出当前时间:.date(Y-m-d H:i:s,strtotime(+1 week).;echo strtotime(+1 week 2 days 4 hours 2 seconds).;echo 输出当前时间:.date(Y-m-d H:i:s,strtotime(+1 week 2 days 4 hours 2 seconds).;echo strtotime(next Thursday).;echo 输出当前时间:.date(Y-m-d H:i:s,strtotime(next Thursday).;echo strto
5、time(last Monday).;echo 输出当前时间:.date(Y-m-d H:i:s,strtotime(last Monday).;,效果,得到日期和时间相关信息,array getdate(int$timestamp)返回一个数组,示例,$today=getdate();print_r($today);Array(seconds=27 minutes=18 hours=11 mday=1 wday=0 mon=8 year=2010 yday=212 weekday=Sunday month=August 0=1280632707),本地化日期和时间,string setloc
6、ale(string cateroty,string locale);设置本地化程序如setlocale(LC_ALL,en_US);/美国格式如setlocale(LC_ALL,chs);/简体中文string strftime(string format,int timestamp)根据区域设置格式化输出日期和时间第一个参数,%a-当前区域星期几的简写%A-当前区域星期几的全称%b-当前区域月份的简写%B-当前区域月份的全称%c-当前区域首选的日期时间表达%C-世纪值(年份除以 100 后取整,范围从 00 到 99)%d-月份中的第几天,十进制数字(范围从 01 到 31)%D-和%m/
7、%d/%y 一样%e-月份中的第几天,十进制数字,一位的数字前会加上一个空格(范围从 1 到 31)%G-4 位数的年份,符合 ISO 星期数(参见%V)。和%V 的格式和值一样,只除了如果 ISO 星期数属于前一年或者后一年,则使用那一年。%h-和%b 一样%H-24 小时制的十进制小时数(范围从 00 到 23)%I-12 小时制的十进制小时数(范围从 00 到 12)%j-年份中的第几天,十进制数(范围从 001 到 366)%m-十进制月份(范围从 01 到 12)%M-十进制分钟数,%p-根据给定的时间值为 am 或 pm,或者当前区域设置中的相应字符串%r-用 a.m.和 p.m.
8、符号的时间%R-24 小时符号的时间%S-十进制秒数%T-当前时间,和%H:%M:%S 一样%u-星期几的十进制数表达 1,7,1 表示星期一%U-本年的第几周,从第一周的第一个星期天作为第一天开始%W-本年的第几周数,从第一周的第一个星期一作为第一天开始%w-星期中的第几天,星期天为 0%x-当前区域首选的时间表示法,不包括时间%X-当前区域首选的时间表示法,不包括日期%y-没有世纪数的十进制年份(范围从 00 到 99)%Y-包括世纪数的十进制年份%Z 或%z-时区名或缩写,示例,查看文件,检查时间有效性,bool checkdate(int$month,int$day,int$year)
9、如果给出的日期有效则返回 TRUE,否则返回 FALSE。检查由参数构成的日期的合法性。日期在以下情况下被认为有效:year 的值是从 1 到 32767 month 的值是从 1 到 12 Day 的值在给定的 month 所应该具有的天数范围之内,闰年已经考虑进去了。参见例子,文件处理,文件操作分三步:打开文件,读写文件,关闭文件。打开文件resource fopen(string$filename,string$mode,bool$use_include_path,resource$zcontext)fopen()将 filename 指定的名字资源绑定到一个流上。如果 filename
10、 是 scheme:/.的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。如果 PHP 认为 filename 指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是 PHP 可以访问的,因此需要确认文件访问权限允许该访问。如果激活了安全模式或者 open_basedir 则会应用进一步的限制。,fopen()中 mode 的可能值列表,读取文件,string fgetc(resource$handle)返回一个包含
11、有一个字符的字符串,该字符从 handle 指向的文件中得到。碰到 EOF 则返回 FALSEstring fgets(int$handle,int$length)从 handle 指向的文件中读取一行并返回长度最多为 length-1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length-1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。string fgetss(resource$handle,int$length,string$allowable_tags)和 fgets()相同,只除了 fgetss 尝
12、试从读取的文本中去掉任何 HTML 和 PHP 标记。可以用可选的第三个参数指定哪些标记不被去掉。,读取一行,string fread(int$handle,int$length)fread()从文件指针 handle 读取最多 length 个字节。该函数在读取完最多 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时,或(在打开用户空间流之后)已读取了 8192 个字节时就会停止读取文件,视乎先碰到哪种情况。,读取这个文件,int readfile(string$filename,bool$use_include_path,resource$context)读入
13、一个文件并写入到输出缓冲。使用它不需要打开关闭文件。直接读取即可 array file(string$filename,int$use_include_path,resource$context)file()将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败 file()返回 FALSE。参见例子string file_get_contents(string$filename,bool$use_include_path,resource$context,int$offset,int$maxlen)file_get_contents()把文件读入一个字符串。将
14、在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。如果失败,file_get_contents()将返回 FALSE。,写入文件,int fwrite(resource$handle,string$string,int$length)fwrite()把 string 的内容写入 文件指针 handle 处。如果指定了 length,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况。int file_put_contents(string$filename,string$data,int$flags,resource$conte
15、xt)将一个字符串写入文件参数 data 可以是数组(但不能为多维数组),这就相当于 file_put_contents($filename,join(,$array),文件操作,bool copy(string$source,string$dest)将文件从 source 拷贝到 dest。如果成功则返回 TRUE,失败则返回 FALSE。bool rename(string$oldname,string$newname,resource$context)尝试把 oldname 重命名为 newname。如果成功则返回 TRUE,失败则返回 FALSE。bool unlink(string$
16、filename)删除 filename。如果成功则返回 TRUE,失败则返回 FALSE。int fileatime(string$filename)返回文件上次被访问的时间,如果出错则返回 FALSE。时间以时间戳的方式返回。,文件操作,int filemtime(string$filename)返回文件上次被修改的时间,出错时返回 FALSE。时间以 Unix 时间戳的方式返回,int filesize(string$filename)返回文件大小的字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级的错误string realpath(string$path)返回规范化
17、的绝对路径名array stat(string$filename)获取由 filename 指定的文件的统计信息。参见例子(filesize.php),关闭文件,bool fclose(resource$handle)将 handle 指向的文件关闭。如果成功则返回 TRUE,失败则返回 FALSE说明:在读写文件时,除了file,readfile等一些方法不用open文件外,都需要打开文件,最后关闭文件。文件信息函数filesize(),filemtime()等不需要打开文件,文件上传,首先需要在php.ini中开启文件上传。相关配置项file_uploads=Onupload_max_fi
18、lesize=2Mpost_max_size=8Mmax_execution_time=30memory_limit=128M,预定义变量$_FILES,保存上传文件的相关信息。为一个二维数组。如下:$_FILESfilenamename:名称$_FILESfilenamesize:大小$_FILESfilenametmp_name:临时文件名$_FILESfilenametype:类型$_FILESfilenameerror:结果,返回0表示成功看例子,表单属性服务器接受$_FILES,文件上传函数,bool move_uploaded_file(string$filename,string
19、$destination)本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。如果 filename 不是合法的上传文件,不会出现任何操作,move_uploaded_file()将返回 FALSE。,文件夹操作函数,resource opendir(string$path)打开一个目录,返回指向该目录的指针,失败返回falsearray scandir(string$directory,int$sorting_order)返回一个 array,包含有 directory 中的文件和目录。,