return date("l F jS Y", $timestamp);是先运行date函数,然后把date函数的返回值做为此函数的返回值,date是系统函数,你可以百度一下它的原型同理echo longdate(time());是先运行time(),把它的返回值做为参数赋给longdate,最后输出longdate的返回值
function getvar($var){ $result = isset($_GET[$var])?$_GET[$var]:$_POST[$var]; 检查传递过来的参数是在GET数组还是POST数组中,并获取其同名数组值 $result = addslashes(trim($result)); 对数据进行删除前后空字符,并进行字符转义处理 return $result; 返回经处理的数据}
usleep() 函数延迟代码执行若干微秒。unpack() 函数从二进制字符串对数据进行解包。uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。time_sleep_until() 函数延迟代码执行直到指定的时间。time_nanosleep() 函数延迟代码执行若干秒和纳秒。sleep() 函数延迟代码执行若干秒。show_source() 函数对文件进行语法高亮显示。strip_whitespace() 函数返回已删除 PHP 注释以及空白字符的源代码文件。pack() 函数把数据装入一个二进制字符串。ignore_user_abort() 函数设置与客户机断开是否会终止脚本的执行。highlight_string() 函数对字符串进行语法高亮显示。highlight_file() 函数对文件进行语法高亮显示。get_browser() 函数返回用户浏览器的性能。exit() 函数输出一条消息,并退出当前脚本。eval() 函数把字符串按照 PHP 代码来计算。die() 函数输出一条消息,并退出当前脚本。defined() 函数检查某常量是否存在。define() 函数定义一个常量。constant() 函数返回常量的值。connection_status() 函数返回当前的连接状态。connection_aborted() 函数检查是否断开客户机。zip_read() 函数读取打开的 zip 档案中的下一个文件。zip_open() 函数打开 ZIP 文件以供读取。zip_entry_read() 函数从打开的 zip 档案项目中获取内容。zip_entry_open() 函数打开一个 ZIP 档案项目以供读取。zip_entry_name() 函数返回 zip 档案项目的名称。zip_entry_filesize() 函数返回 zip 档案项目的原始大小(在压缩之前)。zip_entry_compressionmethod() 函数返回 zip 档案项目的压缩方法。zip_entry_compressedsize() 函数返回 zip 档案项目的压缩文件尺寸。zip_entry_close() 函数关闭由 zip_entry_open() 函数打开的 zip 档案文件。zip_close() 函数关闭由 zip_open() 函数打开的 zip 档案文件。xml_set_unparsed_entity_decl_handler() 函数规定在遇到无法解析的实体名称(NDATA)声明时被调用的函数。xml_set_processing_instruction_handler() 函数规定当解析器在 xml 文档中找到处理指令时所调用的函数。xml_set_object() 函数允许在对象中使用 xml 解析器。xml_set_notation_decl_handler() 函数规定当解析器在 xml 文档中找到符号声明时被调用的函数。xml_set_external_entity_ref_handler() 函数规定当解析器在 xml 文档中找到外部实体时被调用的函数。xml_set_element_handler() 函数建立起始和终止元素处理器。xml_set_default_handler() 函数为 xml 解析器建立默认的数据处理器。xml_set_character_data_handler() 函数建立字符数据处理器。xml_parser_set_option() 函数为 xml 解析器进行选项设置。xml_parser_get_option() 函数从 xml 解析器获取选项设置信息。xml_parser_free() 函数释放 xml 解析器。xml_parser_create() 函数创建 xml 解析器。xml_parser_create_ns() 函数创建带有命名空间支持的 xml 解析器。xml_parse_into_struct() 函数把 xml 数据解析到数组中。xml_parse() 函数解析 xml 文档。xml_get_error_code() 函数获取 xml 解析器错误代码。xml_get_current_line_number() 函数获取 xml 解析器的当前行号。xml_get_current_column_number() 函数获取 xml 解析器的当前列号。xml_get_current_byte_index() 函数获取 xml 解析器的当前字节索引。xml_error_string() 函数获取 xml 解析器的错误描述。utf8_encode() 函数把 ISO-8859-1 字符串编码为 UTF-8。utf8_decode() 函数把 UTF-8 字符串解码为 ISO-8859-1。wordwrap() 函数按照指定长度对字符串进行折行处理。vsprintf() 函数把格式化字符串写入变量中。vprintf() 函数输出格式化的字符串。vfprintf() 函数把格式化的字符串写到指定的输出流。ucwords() 函数把字符串中每个单词的首字符转换为大写。ucfirst() 函数把字符串中的首字符转换为大写。trim() 函数从字符串的两端删除空白字符和其他预定义字符。substr_replace() 函数把字符串的一部分替换为另一个字符串。substr_count() 函数计算子串在字符串中出现的次数。substr_compare() 函数从指定的开始长度比较两个字符串。substr() 函数返回字符串的一部分。strtr() 函数转换字符串中特定的字符。strtoupper() 函数把字符串转换为大写。strtolower() 函数把字符串转换为小写。strtok() 函数把字符串分割为更小的字符串。strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。strspn() 函数返回在字符串中包含的特定字符的数目。strrpos() 函数查找字符串在另一个字符串中最后一次出现的位置。strripos() 函数查找字符串在另一个字符串中最后一次出现的位置。strrev() 函数反转字符串。strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。strpos() 函数返回字符串在另一个字符串中第一次出现的位置。strpbrk() 函数在字符串中搜索指定字符中的任意一个。strncmp() 函数比较两个字符串。strncasecmp() 函数比较两个字符串。strnatcmp() 函数使用一种“自然”算法来比较两个字符串。strnatcasecmp() 函数使用一种“自然”算法来比较两个字符串。strlen() 函数返回字符串的长度。stristr() 函数查找字符串在另一个字符串中第一次出现的位置。stripos() 函数返回字符串在另一个字符串中第一次出现的位置。stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。stripcslashes() 函数删除由 addcslashes() 函数添加的反斜杠。strip_tags() 函数剥去 HTML、xml 以及 PHP 的标签。strcspn() 函数返回在找到任何指定的字符之前,在字符串查找的字符数。strcoll() 函数比较两个字符串。strcmp() 函数比较两个字符串。strchr() 函数搜索一个字符串在另一个字符串中的第一次出现。strcasecmp() 函数比较两个字符串。str_word_count() 函数计算字符串中的单词数。str_split() 函数把字符串分割到数组中。str_shuffle() 函数随机地打乱字符串中的所有字符。str_rot13() 函数对字符串执行 ROT13 编码。str_replace() 函数使用一个字符串替换字符串中的另一些字符。str_repeat() 函数把字符串重复指定的次数。str_pad() 函数把字符串填充为指定的长度。str_ireplace() 函数使用一个字符串替换字符串中的另一些字符。sscanf() 函数根据指定的格式解析来自一个字符串的输入。sprintf() 函数把格式化的字符串写写入一个变量中。soundex() 函数计算字符串的 soundex 键。similar_text() 函数计算两个字符串的匹配字符的数目。sha1_file() 函数计算文件的 SHA-1 散列。sha1() 函数计算字符串的 SHA-1 散列。setlocale() 函数设置地区信息(地域信息)。rtrim() P rtrim() 函数PHP String 函数quotemeta() 函数在字符串中某些预定义的字符前添加反斜杠。quoted_printable_decode() 函数对经过 quoted-printable 编码后的字符串进行解码,返回 8 位的字符串。printf() 函数输出格式化的字符串。print() 函数输出一个或多个字符串。parse_str() 函数把查询字符串解析到变量中。ord() 函数返回字符串第一个字符的 ASCII 值。number_format() 函数通过千位分组来格式化数字。nl2br() 函数在字符串中的每个新行 (\n) 之前插入 HTML 换行符 (<br />)。nl_langinfo() 函数返回指定的本地信息。money_format() 函数把字符串格式化为货币字符串。metaphone() 函数计算字符串的 metaphone 键。md5_file() 函数计算文件的 MD5 散列。md5() 函数计算字符串的 MD5 散列。ltrim() 函数从字符串左侧删除空格或其他预定义字符。localeconv() 函数返回包含本地数字及货币信息格式的数组。levenshtein() 函数返回两个字符串之间的 Levenshtein 距离。join() 函数把数组元素组合为一个字符串。implode() 函数把数组元素组合为一个字符串。htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。html_entity_decode() chars_decode() 函数PHP String 函数htmlentities() 函数把字符转换为 HTML 实体。html_entity_decode() 函数把 HTML 实体转换为字符。hebrevc() 函数把希伯来文本从右至左的流转换为左至右的流。它也会把新行 (\n) 转换为 <br />。hebrev() 函数把希伯来文本从右至左的流转换为左至右的流。get_html_translation_table() 函数返回被 htmlentities() 和 htmlspecialchars() 函数使用的翻译表。fprintf() 函数把格式化的字符串写到指定的输出流(例如:文件或数据库)。explode() 函数把字符串分割为数组。echo() 函数输出一个或多个字符串。crypt() 函数返回使用 DES、Blowfish 或 MD5 加密的字符串。crc32() 函数计算一个字符串的 crc32 多项式。count_chars() 函数返回字符串所用字符的信息。convert_uuencode() 函数使用 uuencode 算法对字符串进行编码。convert_uudecode() 函数对 uuencode 编码的字符串进行解码。convert_cyr_string() 函数把字符由一种 Cyrillic 字符转换成另一种。chunk_split() 函数把字符串分割为一连串更小的部分。chr() 函数从指定的 ASCII 值返回字符。chop() 函数从字符串的末端开始删除空白字符或其他预定义字符。bin2hex() 函数把 ASCII 字符的字符串转换为十六进制值。addslashes() 函数在指定的预定义字符前添加反斜杠。addcslashes() 函数在指定的字符前添加反斜杠。xpath() 函数运行对 xml 文档的 XPath 查询。simplexml_load_string() 函数把 xml 字符串载入对象中。simplexml_load_file() 函数把 xml 文档载入对象中。simplexml_import_dom() 函数把 DOM 节点转换为 SimplexmlElement 对象。registerXPathNamespace() 函数为下一次 XPath 查询创建命名空间语境。getNamespace() 函数获取在 xml 文档中使用的命名空间。getName() 函数从 SimplexmlElement 对象获取 xml 元素的名称。getDocNamespaces() 函数从 SimplexmlElement 对象返回在 xml 文档中声明的命名空间。children() 函数获取指定节点的子节点。attributes() 函数获取 Simplexml 元素的属性。asxml() 函数以字符串的形式从 SimplexmlElement 对象返回 xml 文档。addChild() 函数向指定的 xml 节点添加一个子节点。addAttribute() 函数给 Simplexml 元素添加一个属性。
类就是函数的集合,把函数封装在类中,需要时候只需要继承下,调用方法就行,可扩展。函数(function),名称出自数学家李善兰的著作《代数学》。之所以如此翻译,他给出的原因是“凡此变数中函彼变数者,则此为彼之函数”,也即函数指一个量随着另一个量的变化而变化,或者说一个量中包含另一个量。函数的定义通常分为传统定义和近代定义,函数的两个定义本质是相同的,只是叙述概念的出发点不同,传统定义是从运动变化的观点出发,而近代定义是从集合、映射的观点出发。本回答被网友采纳
这就是函数的递归调用。函数执行到最后一行的时候,就会调用自身,直到 $m <= $n 的时候,直接返回 $n , 不在向下执行,上一级的函数得到返回值后,继续执行 "+ $m" 的运算。
21哪来的?
return后续代码不执行,条件满足return $n应该是输出6,+$sum应该不起作用
13 + 8
嗯,return后续代码不执行吧
不执行。每次函数调用会创建一个独立的运行环境,return 之后,这个环境就销毁了,并将 return 的值返回到调用它的那个函数的运行环境中。可以将上面每一张截图看作一个函数的运行环境,蓝色箭头是在当前运行环境的基础上创建了一个新的环境。粉色箭头是函数运行结束,并将值返回到调用它的那个函数当中,这时这个函数会继续向下执行。大概是这个意思,可能不是很准确。
相当于递进去,再调用自身值回来?
我不太明白你说的“自身值”是什么。在这个例子里边,主调函数在被调函数没有返回的情况下,是不会向后执行的,它必须等待被调函数执行完了,才能继续执行下面的代码。return sum($m-1, $n) + $m;执行到这一句的时候,必须等sum($m-1, $n),执行完了,才能用得到的返回值与 $m 相加,然后返回相加的结果。
哦,这样,你好犀利,php你学了多久了?
我也就是刚刚入门,我说的也只是我的理解,函数实际的调用过程要复杂的多,要想深入了解这些底层的原理,只学 PHP 肯定是不够的,如果能系统学一下计算机组成原理,操作系统相关课程,对理解这些问题会有很大的帮助。
系统学计算机原理不容易
其实什么事想要做好都不容易。
说的也是,你php学到那?
基本上是用到哪学哪
好吧
其实没必要去到处搜罗所谓的“常用函数”,所谓常用是因人而异,某人经常用某函数,但并不代表你也一定会经常使用。php函数很多,常备php的帮助手册是关键,遇到不熟的就查,查的次数多了,自然就变成“常用”了。一般来说,字符串、数组、数据库类的函数是相对来使用比较多的类别。以下罗列了一下函数,仅供参考一阅。============================================//===============================时间日期===============================//y返回年最后两位,Y年四位数,m月份数字,M月份英文。d月份几号数字,D星期几英文$date=date("Y-m-d");//include,include_once.require,require_once//require("file.php") 在PHP程序执行前就会先读入require所指定引进的文件,如出现错误是致命的。//include("file.php") 可以放在PHP程序的任何位置,PHP程序执行到时才读入include指定引入的文件,如出现错误会提示//===============================输出打印===============================//sprintf("%d","3.2") ;//只格式化,返回格式化后的字符串,不输出。//printf("%d","3.2") ;//即格式化,又输出//print("3.2") ;//只输出//echo "nihao","aa";//可以输出多个字符串//print_r(array("a","b","c"));//将数组的键值与元素依次显示//===============================常用字符串函数===============================//获取字符串长度,有多少个字符,空格也算$str=" sdaf sd ";$len=strlen($str);//用第一个参数里的字符串,把后面数组里的每个元素连接起来,返回一个字符串。$str=implode("-",array("a","b","c"));//字符串分割方法,返回一个数组,用第一个参数里的字符分割后面的字符串,指定字符的前后和之间都截取,如果指定字符在开头或结尾则返回的数组开头或结尾的元素为空字符串//没有分割到字符串就返回给数组对应元素一个空值。最后一个限制返回数组长度,可不限制,则一直分割下去。$array=explode("a","asddad addsadassd dasdadfsdfasdaaa",4);//print_r($array);//剔除字符串左边开头的空格,并返回//如有第二个参数则是剔除左边开头的空格换成剔除第二个参数里的字符串$str=ltrim("a asd ","a");//剔除字符串右边开头的空格$str=rtrim(" asd ");//把第一个字符串两边以第二个参数开头的字符串剔除。如没有第二个参数,默认剔除掉字符串两边开头的空格$str=trim(" sdsdfas ","a");//从字符串第一个参数里的指定位置开始取多长(多少个)字符,字符串中第一个字符位置从0算。//如果第二个参数为负则从字符串结尾倒数第几个开始取多长的字符串。结尾最后一个字符算-1,截取方向总是从左到右$str=substr("abcdefgh",0,4);//将第三个参数的第一个参数字符串用参数二字符串替换$str=str_replace("a","","abcabcAbca");//与str_replace用法同,只是不区分大小写//$str=str_ireplace("a"," ","abcabcAbca");//返回括号里字符串的字符全部大写的字符串$str=strtoupper("sdaf");//将括号里第一个字符串变成大写后返回$str=ucfirst("asdf");//用echo等将括号里字符串打印在网页上时原汁原味打印出括号里的字符串,包括标签字符$str=htmlentities("<br/>");//返回第二个参数字符串在第一个字符串里出现的次数$int=substr_count("abcdeabcdeablkabd","ab");//返回第二个字符串在第一个字符串第一次出现的位置,第一个字符位置算0$int=strpos("asagaab","ab");//返回第二个字符串在第一个字符串最后一次出现的位置,第一个字符位置算0$int=strrpos("asagaabadfab","ab");//截取返回参数一中从左至右第一个出现的参数二到参数一最后一个字符的字符串$str=strstr("sdafsdgaababdsfgs","ab");//截取返回参数一中从左至右最后一个出现的参数二到参数一最后一个字符的字符串$str=strrchr("sdafsdgaababdsfgs","ab");//将参数二中每一个字符在参数一中相同字符前加"\"$str=addcslashes("abcdefghijklmn","akd");//将参数一的字符串填充到参数二指定的长度(单字符个数),参数三为指定填充的字符串,不写默认空格//参数四填充位置,0在参数一左侧开头填充,1右侧开头,2两边开头同时。不写默认在右侧开头填充$str=str_pad("abcdefgh",10,"at",0);//依次比较两字符串对应字符阿斯克码值,第一对不一样的,如果参数一里大于参数二里的返回1,反之返回-1,两字符串完全一样返回0$int1=strcmp("b","a");//返回第一个参数格式化后的数字格式,第二个参数为保留几个小数,参数三为将小数点换成参数三,参数四为整数部分每三位用什么字符分割//后面三个参数都不写,则默认去掉小数部分,整数每隔三位用逗号,分割。参数三,参数四必须同时存在$str=number_format(1231233.1415,2,"d","a");//===============================常用数组方法===============================$arr=array("k0"=>"a","k1"=>"b","k2"=>"c");//返回数组元素个数$int=count($arr);//判断第二参数的数组元素中是否有第一个参数元素$bool=in_array("b",$arr);//返回括号中数组所有键值组成的新数组原数组不改变$array=array_keys($arr);//判断第二个参数的数组中是否有第一个参数的键值,返回真假$bool=array_key_exists("k1",$arr);//返回原数组中所有元素值组成的新数组,键值从0开始自增,原数组不变$array=array_values($arr);//返回当前数组指针指向的键值$key=key($arr);//返回当前数组指针指向的元素值$value=current($arr);//返回当前数组指针指向元素的键值及元素值组成的数组,再将指针推向下一位,最后指针指向的是一个空元素返回空//返回的数组中有四个固定键值对应的元素值分别是返回元素的键值及元素值,其中0,'key'键值都对应返回元素键值,1,'value'键值都对应返回的元素值$array=each($arr);//先将数组指针推向下一位,再返回指针移动后指向的元素值$value=next($arr);//将数组指针推向上一位,再返回指针移动后指向的元素值$value=prev($arr);//让数组指针重置指向第一个元素并返回元素值$value=reset($arr);//将数组指针指向最后一位元素,并返回最后一位元素值$value=end($arr);//将第一个参数以后的参数作为元素追加入第一个参数数组的末尾,索引从最小的没用过的数值开始计,返回之后的数组长度$int=array_push($arr,"d","dfsd");//将第一个参数数组后面所有参数作为元素添加到第一个参数数组开头处,键值以0从第一个元素处重新累加,原非数值的键值保持不变,原元素排序位置不变,返回之后的数组长度$int=array_unshift($arr,"t1","t2");//返回从数组尾部提取最后一个元素值,并把最后一个元素从原数组中剔除$value=array_pop($arr);//array_pop相反,提取返回数组头一个元素值,并把头一个元素从原数组中剔除$value=array_shift($arr);//让第一个参数数组达到第二个参数数值长度,将第三个参数作为元素添加到第一个参数数组的末尾,索引从最小没用过数值开始计并返回,原数组不改变$array1=array_pad($arr,10,"t10");//返回一个将原数组中多余重复元素剔除掉的新数组,原数组不改变$array=array_unique($array1);//将原数组键值打破重新以元素值的阿斯克码值从小到大排序,索引从数字0开始重计$int=sort($array);//和sort相反,以元素值阿斯柯码值大小降序重新排序,索引从0重新计$int=rsort($array);//返回将第一个参数数组中每一个元素值依次作为键值付给参数二数组的数组,两数组长度必须一致,原数组不改变$array=array_combine(array("a","b","c","d","e"),$arr);//将两个数组合并并返回原数组不变$array=array_merge($arr,array("a","b","c"));//在第一个参数数组中从第二个参数数值位置开始截取到第三个参数数值长度的数组键值+元素并返回,数组第一个元素位置从0计$array=array_slice($arr,2,1);//截取功能和array_slice()一样,只是将截取部分在原数组中剔除$array=array_splice($arr,2,1);//将第一个参数作为第一个元素,每次自增参数三的值,自增后再作为一个元素存在数组中,直到值达到参数二的值存到数组中为止并返回这个数组//参数一,参数二可以是数字,可以是单个字符,单字符就按阿斯柯码值算,第三个参数不写默认每次自增1$array=range(3,9,2);//将原数组元素与对应键值的对应关系重新随机排列返回真假$bool=shuffle($arr);//计算数组中所有数值型元素值的和$int=array_sum(array("a",2,"cssf"));//把一个数组分割为新的数组块,新数组每个元素都是一个数组,新数组每个元素内有几个元素由参数二决定//第三个参数决定元素的键值是否保留原键值可不写,true为保留,默认false不保留$array=array_chunk(array("a"=>"a","b","c","d","e","f","g","h"),2,true);
PHP 用户定义函数
除了内建的 PHP 函数,我们可以创建我们自己的函数。
函数是可以在程序中重复使用的语句块。
页面加载时函数不会立即执行。
函数只有在被调用时才会执行。
在 PHP 创建用户定义函数
用户定义的函数声明以关单 "function" 开头:
语法
function functionName() {
被执行的代码;
}
注释:函数名能够以字母或下划线开头(而非数字)。
注释:函数名对大小写不敏感。
提示:函数名应该能够反映函数所执行的任务。
在下面的例子中,我们创建名为 "writeMsg()" 的函数。打开的花括号({)指示函数代码的开始,而关闭的花括号(})指示函数的结束。此函数输出 "Hello world!"。如需调用该函数,只要使用函数名即可:
<?php
function writeMsg() {
echo "Hello world!";
}
writeMsg(); // 调用函数
?>
PHP 函数参数
可以通过参数向函数传递信息。参数类似变量。
参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可。
下面的例子中的函数有一个参数($fname)。当调用 familyName() 函数时,我们同时要传递一个名字(例如 Bill),这样会输出不同的名字,但是姓氏相同:
<?php
function familyName($fname) {
echo "$fname Zhang.<br>";
}
familyName("Li");
familyName("Hong");
familyName("Tao");
familyName("Xiao Mei");
familyName("Jian");
?>
下面的例子中的函数有两个参数($fname 和 $year):
<?php
function familyName($fname,$year) {
echo "$fname Zhang. Born in $year <br>";
}
familyName("Li","1975");
familyName("Hong","1978");
familyName("Tao","1983");
?>
PHP 默认参数值
下面的例子展示了如何使用默认参数。如果我们调用没有参数的 setHeight() 函数,它的参数会取默认值:
<?php
function setHeight($minheight=50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // 将使用默认值 50
setHeight(135);
setHeight(80);
?>
PHP 函数 - 返回值
如需使函数返回值,请使用 return 语句:
<?php
function sum($x,$y) {
$z=$x+$y;
return $z;
}
echo "5 + 10 = " . sum(5,10) . "<br>";
echo "7 + 13 = " . sum(7,13) . "<br>";
echo "2 + 4 = " . sum(2,4);
?>
这个要根据实际情况,需要返回值的话,你可以加return,不需要的话,你可以不加,两者的区别一是在于实际需求不同,二是在于加了return的话,程序运行的响应时间上会稍稍的长一点点,不过,这点时间一般不会有什么影响。比如:你要输出一个字符串:function type_str(){ print("123");}这样的话,可以,但是如果你要判断是否输出成功了,你就必须这么写:function type_str(){ if(print("123")){ return true; }else return false;}你可以通过程序的返回值来判断是否输出成功。还有一些自定义函数处理后的结果也是需要返回的,就得用到return。比如:function add($a , $b){ $sum = $a+$b; return $sum;}函数运行结束后,函数内部定义的变量全部会被销毁,所以,为了你处理的结果不会白白浪费掉,一定要将$sum 返回。再告诉你一个小窍门:echo和print是不同的,echo不是一个函数,更没有返回值,所以你不能写if(echo "123") ,但是 print是一个函数,它有返回值,成功则返回true,失败则返回false,可以写:if(print("123")); 之类的。所以print要比echo速度慢一点点,一般情况下用echo就行了。
参考资料:原创
在开发中我们有时需要知道文件的最后访问时间和文件最后修改的时间,介绍一下PHP提供的确定文件的访问,创建和最后修改时间的3个函数:fileatime(),filectime()和filemtime()。1、fileatime()int fileatime(string filename):fileatime()函数返回filename最后访问的时间,这里的最后访问是指每当一个文件的数据块被读取,采用UNIX时间戳格式,有错误时返回FALSE。2、filectime()int filectime(string filename):filectime()函数返回filename最后改变的时间,这里的最后改变是指指定文件 filename 的 inode 最后改变时间,其中inode (索引节点)用来存放档案及目录的基本信息包含时间、档名、使用者及群组等,采用UNIX时间戳格式,有错误时返回FALSE。3、filemtime()int filemtime(string filename):filemtime()函数返回filename最后修改的时间,最后修改指的是文件的内容改变,采用UNIX时间戳格式,有错误时返回FALSE。例如:<?php $file="F:/software/test.txt"; echo "文件最后访问的时间是".date("Y-m-d H:i:s",fileatime($file))."<br/>"; echo "文件最后改变的时间是".date("Y-m-d H:i:s",filectime($file))."<br/>"; echo "文件最后修改的时间是".date("Y-m-d H:i:s",filemtime($file))."<br/>"; ?>