1 Date()
1.1 Date()函數
語法:date(format,timestamp)
format:必需。規定時間戳的格式。
timestamp:可選。規定時間戳。默認是當前的日期和時間。
1.2 時間戳(Timestamp)
自1970.1.1(00:00:00GMT)以來的秒數
1.3 格式化日期
date()函數的format參數規定了如何格式化日期/時間
d:月中的天(01-31)
m:當前的月,以數字計(01-12)
Y:當前的年(四位數)
<?phpecho date("Y/m/d");echo "<br />";echo date("Y-m-d");?>1.4 添加時間戳
date()函數的timestamp參數規定了一個時間戳
1.5 mktime()函數
mktime()函數可為指定的日期返回Unix時間戳
語法:mktime(hour,minute,second,month,day,year,is_dst)
<?php$tomorrow = mktime(0,0,0,date("m"),date("d")+1,date("Y"));echo "Tomorrow is" . date("Y/m/d",$tomorrow);?>
2 引用文件
2.1 include()函數
<?php include("header.php"); ?>2.2 require()函數
和include()的錯誤處理方式不同:include()函數會生成一個警告(但是腳本會繼續執行),而require()函數會生成一個致命錯誤(fatal error)(在錯誤發生後腳本會停止執行)
3 文件處理
3.1 打開文件 fopen()函數
<?php$file = fopen("welcome.txt","r");?>第一個參數含有要打開的文件的名稱
第二個參數規定了使用哪種模式來打開文件
模式
描述
r
只讀。在文件的開頭開始。
r+
讀/寫。在文件的開頭開始。
w
只寫。打開並清空文件的內容;如果文件不存在則創建新文件
w+
讀/寫。打開並清空文件的內容;如果文件不存在則創建新文件
a
追加。打開並向文件末端進行寫操作,如果文件不存在則創建新文件
a+
讀/追加。通過向文件末端寫內容,來保持文件內容
x
只寫。創建新文件。如果文件已存在則返回false
x+
讀/寫。創建新文件。如果文件已存在,則返回false和一個錯誤。如果fopen()無法打開指定文件,則返回0(false)
3.2 關閉文件 fclose()函數
<?php$file = fopen("test.txt","r");//...fclose($file);?>3.3 檢測End-of-file feof()函數
<?phpif(feof($file)){echo "End of file";}?>3.4 逐行讀取文件 fgets()函數
在調用該函數之後,文件指針會移動到下一行
<?php$file = fopen("welcome.txt","r") or exit("Unable to open file!");while(!feof($file)){echo fgets($file) . "<br />";}fclose($file);?>3.5 逐字符讀取文件 fgetc()函數
在調用該函數之後,文件指針會移動到下一個字符
<?php$file = fopen("welcome.txt","r") or exit("Unable to open file!");while(!feof($file)){echo fgetc($file);}fclose($file);?>
4 文件上傳
4.1 創建表單
<?php$file = fopen("welcome.txt","r") or exit("Unable to open file!");while(!feof($file)){echo fgetc($file);}fclose($file);?>4.2 上傳腳本 全局數組$_FILES
<?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"];}?>$_FILES數組的第一個參數是表單的input name,第二個下標可以是:
name:被上傳文件的名稱
type:被上傳文件的類型
size:被上傳文件的大小
tmp_name:存儲在服務器的文件的臨時副本的名稱
error:由文件上傳導致的錯誤代碼
4.3 上傳限制
限制上傳.gif或者.jpeg文件,文件大小必須小於20kb:
<?phpif((($_FILES["file"]["type"] == "images/gif" || $_FILES["file"]["type"] == "images/jpeg" || $_FILES["file"]["type"] == "images/pjpeg")) && ($_FILES["file"]["size"] < 20000)){ //IE識別jpg為pjpeg,FF識別jpg為jpegif($_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"];}else{echo "Invalid file";}}?>
4.4 保存被上傳的文件
將上面例子在臨時文件夾創建的被上傳文件的臨時副本拷貝到另外的位置以免其在腳本結束時消失
<?phpif((($_FILES["file"]["type"] == "images/gif" || $_FILES["file"]["type"] == "images/jpeg" || $_FILES["file"]["type"] == "images/pjpeg")) && ($_FILES["file"]["size"] < 20000)){ //IE識別jpg為pjpeg,FF識別jpg為jpegif($_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 "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";if(file_exists("upload/" . $_FILES["file"]["name"])){echo $_FILES["file"]["name"] . "already exists. ";}else{move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);echo "Stored in: " . "upload/" . $_FILES["file"]["name"];}}}else{echo "Invalid file";}?>
5 Cookies
5.1 創建cookie setcookie()函數
語法:setcookie(name, value, expire, path, domain);
<?phpsetcookie("user", "Alex Porter", time()+3600); //創建名為"user"的cookie,賦值為Alex Porter,1小時後過期?>5.2 取回cookie的值
<?phpecho $_COOKIE["user"]; //print a cookieprint_r($_COOKIE); //a way to view all cookies?>使用isset()函數來確認是否已設置了cookie:
<?phpif(isset($_COOKIE["user"])){echo "Welcome " . $_COOKIE["user"] . "!<br />";}else{echo "Welcome guest!<br />";}?>5.3 刪除cookie
<?phpsetcookie("user", "", time()-3600); //使過期日期變更為過去的時間點?>
6 Session變量
6.1 啟動session會話
<?php session_start(); ?><!--該函數必須位於html標簽之前--><html></html>6.2 存儲session變量
<?phpsession_start();$_SESSION["views"]=1; //store session data?><html><body><?phpecho "Pageviews=" . $_SESSION[views]; //print Pageviews=1?></body></html>6.3 終結session
<?phpunset($_SESSION[views]); //釋放指定的session變量?><?phpsession_destroy(); //徹底終結session?>
7 mail()函數 用於從腳本中發送電子郵件。
語法:mail(to, subject, message, headers, parameters)
參數
描述
to
必需。規定email接收者。
subject
必需。規定email的主題。注釋:該參數不能包含任何新行字符。
message
必需。定義要發送的信息。應使用LF(
)來分隔各行。
headers
可選。規定附加的標題,比如From、Cc以及Bcc。應當使用過CRLF(
)分隔附加的標題。
parameters
可選。對郵件發送程序規定額外的參數。
7.1 范例
<?php$to = "[email protected]";$subject = "Test mail";$message = "Hello!This is a simple email message.";$from = "[email protected]";$headers = "From: $from";mail($to,$subject,$message,$headers);echo "Mail Sent.";
?>