PHP学习笔记(三):高级教程:多维数组,日期,文件打开/读取,创建/写入,上传PHP多维数组PHP-两维数组两维数组是数组的数组(三维数组是数组的数组的数组)。首先,让我们看看下面的表格:我们能够在两维数组中存储上表中的数据,就像这样:$cars=array(array(Volvo,22,18),array(BMW,15,13),array(Saab,5,2),array(LandRover,17,15));现在这个两维数组包含了四个数组,并且它有两个索引(下标):行和列。如需访问$cars数组中的元素,我们必须使用两个索引(行和列):【实例】?phpecho$cars[0][0].:库存:.$cars[0][1].,销量:.$cars[0][2]..br;echo$cars[1][0].:库存:.$cars[1][1].,销量:.$cars[1][2]..br;echo$cars[2][0].:库存:.$cars[2][1].,销量:.$cars[2][2]..br;echo$cars[3][0].:库存:.$cars[3][1].,销量:.$cars[3][2]..br;?PHP日期和时间PHPDate()函数PHPDate()函数把时间戳格式化为更易读的日期和时间。语法date(format,timestamp)获得简单的日期date()函数的格式参数是必需的,它们规定如何格式化日期或时间。下面列出了一些常用于日期的字符:d-表示月里的某天(01-31)m-表示月(01-12)Y-表示年(四位数)1-表示周里的某天其他字符,比如“/”,“.”或“-”也可被插入字符中,以增加其他格式。下面的例子用三种不同方法格式今天的日期:实例?phpecho今天是.date(Y/m/d).br;echo今天是.date(Y.m.d).br;echo今天是.date(Y-m-d).br;echo今天是.date(l);?PHP提示-自动版权年份使用date()函数在您的网站上自动更新版本年份:实例©2010-?phpechodate(Y)?获得简单的时间下面是常用于时间的字符:h-带有首位零的12小时小时格式i-带有首位零的分钟s-带有首位零的秒(00-59)a-小写的午前和午后(am或pm)下面的例子以指定的格式输出当前时间:实例?phpecho现在时间是.date(h:i:sa);?PHPInclude文件服务器端包含(SSI)用于创建可在多个页面重复使用的函数、页眉、页脚或元素。include(或require)语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用include语句的文件中。包含文件很有用,如果您需要在网站的多张页面上引用相同的PHP、HTML或文本的话。PHPinclude和require语句通过include或require语句,可以将PHP文件的内容插入另一个PHP文件(在服务器执行它之前)。include和require语句是相同的,除了错误处理方面:require会生成致命错误(E_COMPILE_ERROR)并停止脚本include只生成警告(E_WARNING),并且脚本会继续因此,如果您希望继续执行,并向用户输出结果,即使包含文件已丢失,那么请使用include。否则,在框架、CMS或者复杂的PHP应用程序编程中,请始终使用require向执行流引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。包含文件省去了大量的工作。这意味着您可以为所有页面创建标准页头、页脚或者菜单文件。然后,在页头需要更新时,您只需更新这个页头包含文件即可。语法include'filename';或require'filename';PHPinclude实例【例子1】假设我们有一个名为“footer.php”的标准的页脚文件,就像这样:?phpechopCopyright©2006-.date(Y).W3School.com.cn/p;?如需在一张页面中引用这个页脚文件,请使用include语句:htmlbodyh1欢迎访问我们的首页!/h1p一段文本。/pp一段文本。/p?phpinclude'footer.php';?/body/html【例子2】假设我们有一个名为“menu.php”的标准菜单文件:?phpecho'ahref=/index.asp首页/a-ahref=/html/index.aspHTML教程/a-ahref=/css/index.aspCSS教程/a-ahref=/js/index.aspJavaScript教程/a-ahref=/php/index.aspPHP教程/a';?网站中的所有页面均使用此菜单文件。具体的做法是(我们使用了一个div元素,这样今后就可以轻松地通过CSS设置样式):htmlbodydivclass=menu?phpinclude'menu.php';?/divh1欢迎访问我的首页!/h1pSometext./ppSomemoretext./p/body/html【例子3】假设我们有一个名为“vars.php”的文件,其中定义了一些变量:?php$color='银色的';$car='奔驰轿车';?然后,如果我们引用这个“vars.php”文件,就可以在调用文件中使用这些变量:htmlbodyh1欢迎访问我的首页!/h1?phpinclude'vars.php';echo我有一辆.$color.$car。;?/body/htmlPHPincludevs.requirerequire语句同样用于向PHP代码中引用文件。不过,include与require有一个巨大的差异:如果用include语句引用某个文件并且PHP无法找到它,脚本会继续执行:实例htmlbodyh1Welcometomyhomepage!/h1?phpinclude'noFileExists.php';echoIhavea$color$car.;?/body/html如果我们使用require语句完成相同的案例,echo语句不会继续执行,因为在require语句返回严重错误之后脚本就会终止执行:htmlbodyh1Welcometomyhomepage!/h1?phprequire'noFileExists.php';echoIhavea$color$car.;?/body/html注释:请在此时使用require:当文件被应用程序请求时。请在此时使用include:当文件不是必需的,且应用程序在文件未找到时应该继续运行时。PHP文件处理PHP拥有的多种函数可供创建、读取、上传以及编辑文件。注意:请谨慎操作文件!当您操作文件时必须非常小心。如果您操作失误,可能会造成非常严重的破坏。常见的错误是:编辑错误的文件被垃圾数据填满硬盘意外删除文件内容PHPreadfile()函数readfile()函数读取文件,并把它写入输出缓冲。假设我们有一个名为“webdictionary.txt”的文本文件,存放在服务器上,就像这样:AJAX=AsynchronousJavaScriptandXMLCSS=CascadingStyleSheetsHTML=HyperTextMarkupLanguagePHP=PHPHypertextPreprocessorSQL=StructuredQueryLanguageSVG=ScalableVectorGraphicsXML=EXtensibleMarkupLanguage读取此文件并写到输出流的PHP代码如下(如读取成功则readfile()函数返回字节数):实例?phpechoreadfile(webdictionary.txt);?如果您想做的所有事情就是打开一个文件并读取器内容,那么readfile()函数很有用。下一节会讲解更多有关文件处理的内容。PHP文件打开/读取/读取在本节中,我们向您讲解如何在服务器上打开、读取以及关闭文件。PHPOpenFile-fopen()打开文件的更好的方法是通过fopen()函数。此函数为您提供比readfile()函数更多的选项。在课程中,我们将使用文本文件“webdictionary.txt”:AJAX=AsynchronousJavaScriptandXMLCSS=CascadingStyleSheetsHTML=HyperTextMarkupLanguagePHP=PHPHypertextPreprocessorSQL=StructuredQueryLanguageSVG=ScalableVectorGraphicsXML=EXtensibleMarkupLanguagefopen()的第一个参数包含被打开的文件名,第二个参数规定打开文件的模式。如果fopen()函数未能打开指定的文件,下面的例子会生成一段消息:实例?php$myfile=fopen(webdictionary.txt,r)ordie(Unabletoopenfile!);echofread($myfile,filesize(webdictionary.txt));fclose($myfile);?PHP读取文件-fread()fread()函数读取打开的文件。fread()的第一个参数包含待读取文件的文件名,第二个参数规定待读取的最大字节数。如下PHP代码把“webdictionary.txt”文件读至结尾:fread($myfile,filesize(webdictionary.txt));PHP关闭文件-fclose()fclose()函数用于关闭打开的文件。注释:用完文件后把它们全部关闭是一个良好的编程习惯。您并不想打开的文件占用您的服务器资源。fclose()需要待关闭文件的名称(或者存有文件名的变量):?php$myfile=fopen(webdictionary.txt,r);//somecodetobeexecuted....fclose($myfile);?PHP读取单行文件-fgets()fgets()函数用于从文件读取单行。下例输出“webdictionary.txt”文件的首行:实例?php$myfile=fopen(webdictionary.txt,r)ordie(Unabletoopenfile!);echofgets($myfile);fclose($myfile);?注释:调用fgets()函数之后,文件指针会移动到下一行。PHP检查End-Of-File-feof()feof()函数检查是否已到达“end-of-file”(EOF)。feof()对于遍历未知长度的数据很有用。下例逐行读取“webdictionary.txt”文件,直到end-of-file:实例?php$myfile=fopen(webdictionary.txt,r)ordie(Unabletoopenfile!);//输出单行直到end-of-filewhile(!feof($myfile)){echofgets($myfile).br;}fclose($myfile);?PHP读取单字符-fgetc()fgetc()函数用于从文件中读取单个字符。下例逐字符读取“webdictionary.txt”文件,直到end-of-file:实例?php$myfile=fopen(webdictionary.txt,r)ordie(Unabletoopenfile!);//输出单字符直到end-of-filewhile(!feof($myfile)){echofgetc($myfile);}fclose($m