多维数组指的是包含一个或多个数组的数组。
注释:数组的维度指示您需要选择元素的索引数。
$cars = array ( array("Volvo",22,18), array("BMW",15,13), array("Saab",5,2), array("Land Rover",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>";?>或者:
<?phpfor ($row = 0; $row < 4; $row++) { echo "<p><b>Row number $row</b></p>"; echo "<ul>"; for ($col = 0; $col < 3; $col++) { echo "<li>".$cars[$row][$col]."</li>"; } echo "</ul>";}?>PHP date() 函数用于对日期或时间进行格式化。语法
date(format,timestamp)
参数 | 描述 |
---|---|
format | 必需。规定时间戳的格式。 |
timestamp | 可选。规定时间戳。默认是当前时间和日期。 |
<?phpecho "今天是 " . date("Y/m/d") . "<br>";echo "今天是 " . date("Y.m.d") . "<br>";echo "今天是 " . date("Y-m-d") . "<br>";echo "今天是 " . date("l");?>PHP 提示 - 自动版权年份
使用 date() 函数在您的网站上自动更新版本年份:
版权所有 2010-<?php echo date("Y")?>获得简单的时间
<?phpecho "现在时间是 " . date("h:i:sa");?>获得时区
<?phpdate_default_timezone_set("Asia/Shanghai");echo "当前时间是 " . date("h:i:sa");?>通过 PHP mktime() 创建日期mktime() 函数返回日期的 Unix 时间戳。Unix 时间戳包含 Unix 纪元(1970 年 1 月 1 日 00:00:00 GMT)与指定时间之间的秒数。语法
mktime(hour,minute,second,month,day,year)创建日期是 2015-06-10 09:12:31am通过 PHP strtotime() 用字符串来创建日期
PHP strtotime() 函数用于把人类可读的字符串转换为 Unix 时间。
语法strtotime(time,now)
PHP 在将字符串转换为日期这方面非常聪明,所以您能够使用各种值:
实例<?php$d=strtotime("tomorrow");echo date("Y-m-d h:i:sa", $d) . "<br>";$d=strtotime("next Saturday");echo date("Y-m-d h:i:sa", $d) . "<br>";$d=strtotime("+3 Months");echo date("Y-m-d h:i:sa", $d) . "<br>";?>
<?php$d1=strtotime("December 31");$d2=ceil(($d1-time())/60/60/24);echo "距离十二月三十一日还有:" . $d2 ." 天。";?>服务器端包含 (SSI) 用于创建可在多个页面重复使用的函数、页眉、页脚或元素。PHP include 和 require 语句
通过 include 或 require 语句,可以将 PHP 文件的内容插入另一个 PHP 文件(在服务器执行它之前)。
include 和 require 语句是相同的,除了错误处理方面:
假设我们有一个名为 "footer.php" 的标准的页脚文件,就像这样:
<?phpecho "<p>Copyright © 2006-" . date("Y") . " W3School.com.cn</p>";?>
如需在一张页面中引用这个页脚文件,请使用 include 语句:
<html><body><h1>欢迎访问我们的首页!</h1><p>一段文本。</p><p>一段文本。</p><?php include 'footer.php';?></body></html>PHP 操作文件
PHP 拥有的多种函数可供创建、读取、上传以及编辑文件。
注意:请谨慎操作文件!
当您操作文件时必须非常小心。如果您操作失误,可能会造成非常严重的破坏。常见的错误是:
readfile() 函数读取文件,并把它写入输出缓冲。
假设我们有一个名为 "webdictionary.txt" 的文本文件,存放在服务器上,就像这样:
Ajax = Asynchronous javaScript and xmlCSS = Cascading Style SheetsHTML = Hyper Text Markup LanguagePHP = PHP Hypertext PReprocessorSQL = Structured Query LanguageSVG = Scalable Vector GraphicsXML = EXtensible Markup Language
读取此文件并写到输出流的 PHP 代码如下(如读取成功则 readfile() 函数返回字节数):
实例<?phpecho readfile("webdictionary.txt");?>PHP Open File - fopen()fopen() 的第一个参数包含被打开的文件名,第二个参数规定打开文件的模式。如果 fopen() 函数未能打开指定的文件,下面的例子会生成一段消息:
<?php$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");echo fread($myfile,filesize("webdictionary.txt"));fclose($myfile);?>
文件会以如下模式之一打开:
模式 | 描述 |
---|---|
r | 打开文件为只读。文件指针在文件的开头开始。 |
w | 打开文件为只写。删除文件的内容或创建一个新的文件,如果它不存在。文件指针在文件的开头开始。 |
a | 打开文件为只写。文件中的现有数据会被保留。文件指针在文件结尾开始。创建新的文件,如果文件不存在。 |
x | 创建新文件为只写。返回 FALSE 和错误,如果文件已存在。 |
r+ | 打开文件为读/写、文件指针在文件开头开始。 |
w+ | 打开文件为读/写。删除文件内容或创建新文件,如果它不存在。文件指针在文件开头开始。 |
a+ | 打开文件为读/写。文件中已有的数据会被保留。文件指针在文件结尾开始。创建新文件,如果它不存在。 |
x+ | 创建新文件为读/写。返回 FALSE 和错误,如果文件已存在。 |
fread() 的第一个参数包含待读取文件的文件名,第二个参数规定待读取的最大字节数。
如下 PHP 代码把 "webdictionary.txt" 文件读至结尾:
fread($myfile,filesize("webdictionary.txt"));PHP 关闭文件 - fclose()
注释:用完文件后把它们全部关闭是一个良好的编程习惯。您并不想打开的文件占用您的服务器资源。
fclose() 需要待关闭文件的名称(或者存有文件名的变量):
<?php$myfile = fopen("webdictionary.txt", "r");// some code to be executed....fclose($myfile);?>PHP 读取单行文件 - fgets()下例输出 "webdictionary.txt" 文件的首行:
<?php$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");echo fgets($myfile);fclose($myfile);?>注释:调用 fgets() 函数之后,文件指针会移动到下一行。PHP 检查 End-Of-File - feof()
feof() 对于遍历未知长度的数据很有用。
下例逐行读取 "webdictionary.txt" 文件,直到 end-of-file:
<?php$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");// 输出单行直到 end-of-filewhile(!feof($myfile)) { echo fgets($myfile) . "<br>";}fclose($myfile);?>PHP 读取单字符 - fgetc()下例逐字符读取 "webdictionary.txt" 文件,直到 end-of-file:
<?php$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");// 输出单字符直到 end-of-filewhile(!feof($myfile)) { echo fgetc($myfile);}fclose($myfile);?>注释:在调用 fgetc() 函数之后,文件指针会移动到下一个字符。PHP 创建文件 - fopen()
如果您用 fopen() 打开并不存在的文件,此函数会创建文件,假定文件被打开为写入(w)或增加(a)。
下面的例子创建名为 "testfile.txt" 的新文件。此文件将被创建于 PHP 代码所在的相同目录中:
$myfile = fopen("testfile.txt", "w")PHP 文件权限
如果您试图运行这段代码时发生错误,请检查您是否有向硬盘写入信息的 PHP 文件访问权限。
PHP 写入文件 - fwrite()fwrite() 的第一个参数包含要写入的文件的文件名,第二个参数是被写的字符串。<?php$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");$txt = "Bill Gates\n";fwrite($myfile, $txt);$txt = "Steve Jobs\n";fwrite($myfile, $txt);fclose($myfile);?>PHP 覆盖(Overwriting)
如果现在 "newfile.txt" 包含了一些数据,我们可以展示在写入已有文件时发生的的事情。所有已存在的数据会被擦除并以一个新文件开始。
<?php$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");$txt = "Mickey Mouse\n";fwrite($myfile, $txt);$txt = "Minnie Mouse\n";fwrite($myfile, $txt);fclose($myfile);?>创建上传脚本
"upload_file.php" 文件含有供上传文件的代码:
<?phpif ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; }else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["file"]["tmp_name"]; }?>
在这个脚本中,我们增加了对文件上传的限制。用户只能上传 .gif 或 .jpeg 文件,文件大小必须小于 20 kb:
<?phpif ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/pjpeg"))&& ($_FILES["file"]["size"] < 20000)) { if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["t