本篇文章給大家?guī)砹薖HP入門筆記,其中記錄的知識點非常詳細,PHP語言作為一種語言程序,其專用性逐漸在應用過程中顯現(xiàn),希望大家能夠從中感受到PHP的魅力,希望對大家有幫助。
簡介
PHP (超文本預處理器)原始為Personal Home Page的縮寫,已經正式更名為 "PHP: Hypertext Preprocessor"。自20世紀90年代國內互聯(lián)網開始發(fā)展到現(xiàn)在,互聯(lián)網信息幾乎覆蓋了我們日?;顒铀兄R范疇,并逐漸成為我們生活、學習、工作中必不可少的一部分。據(jù)統(tǒng)計,從2003 年開始,我國的網頁規(guī)?;颈3至朔脑鲩L速度,并且呈上升趨勢。PHP 語言作為當今最熱門的網站程序開發(fā)語言,它具有成本低、速度快、可移植性好、 內置豐富的函數(shù)庫等優(yōu)點,因此被越來越多的企業(yè)應用于網站開發(fā)中。但隨著互聯(lián)網的不斷更新?lián)Q代,PHP語言也出現(xiàn)了不少問題。
根據(jù)動態(tài)網站要求,PHP語言作為一種語言程序,其專用性逐漸在應用過程中顯現(xiàn),其技術水平的優(yōu)劣與否將直接影響網站的運行效率。其特點是具有公開的源代碼, 在程序設計上與通用型語言,如C語言相似性較高,因此在操作過程中簡單易懂,可操作性強。同時,PHP語言具有較高的數(shù)據(jù)傳送處理水平和輸出水平,可以廣泛應用在Windows系統(tǒng)及各類Web服務器中。如果數(shù)據(jù)量較大,PHP語言還可以拓寬鏈接面,與各種數(shù)據(jù)庫相連,緩解數(shù)據(jù)存儲、檢索及維護壓力。隨著技術的發(fā)展,PHP 語言搜索引擎還可以量體裁衣,實行個性化服務,如根據(jù)客戶的喜好進行分類收集儲存,極大提高了數(shù)據(jù)運行效率。
主要特點
(一)開源性和免費性
由于PHP的解釋器的源代碼是公開的,所以安全系數(shù)較高的網站可以自己更改PHP的解釋程序。另外,PHP 運行環(huán)境的使用也是免費的。
(二)快捷性
PHP是一種非常容易學習和使用的一門語言,它的語法特點類似于C語言,但又沒有C語言復雜的地址操作,而且又加入了面向對象的概念,再加上它具有簡潔的語法規(guī)則,使得它操作編輯非常簡單,實用性很強。
(三)數(shù)據(jù)庫連接的廣泛性
PHP可以與很多主流的數(shù)據(jù)庫建立起連接,如MySQL、ODBC、Oracle等,PHP是利用編譯的不同函數(shù)與這些數(shù)據(jù)庫建立起連接的,PHPLIB就是常用的為一般事務提供的基庫。
(四)面向過程和面向對象并用
在PHP語言的使用中,可以分別使用面向過程和面向對象, 而且可以將PHP面向過程和面向對象兩者一起混用,這是其它很多編程語言做不到的。
優(yōu)點
(一)流行,容易上手
PHP是目前最流行的編程語言,這毋庸置疑。它驅動全球超過2億多個網站,有全球超過81.7%的公共網站在服務器端采用PHP。PHP常用的數(shù)據(jù)結構都內置了,使用起來方便簡單,也一點都不復雜,表達能力相當靈活。
(二)開發(fā)職位很多
在服務器端的網站編程中PHP會更容易幫助你找到工作。很多互聯(lián)網相關企業(yè)都在使用PHP開發(fā)框架,所以可以說市場對PHP的開發(fā)程序員的需求還是比較大的。
(三)仍然在不斷發(fā)展
PHP在不斷兼容著類似closures和命名空間等技術,同時兼顧性能和當下流行的框架。版本是7之后,一直在提供更高性能的應用。
(四)可植入性強
PHP 語言在補丁漏洞升級過程中,核心部分植入簡單易行,且速度快。
(五)拓展性強
PHP 語言在數(shù)據(jù)庫應用過程中,可以從數(shù)據(jù)庫調取各類數(shù)據(jù),執(zhí)行效率高。
缺點
(一)PHP的解釋運行機制
在 PHP 中,所有的變量都是頁面級的,無論是全局變量, 還是類的靜態(tài)成員,都會在頁面執(zhí)行完畢后被清空。
(二)設計缺陷,缺少關注PHP被稱作是不透明的語言,因為沒有堆棧追蹤,各種脆弱的輸入。沒有一個明確的設計哲學。早期的PHP受到Perl的影響,帶有out參數(shù)的標準庫又是有C語言引入,面向對象的部分又是從 C++和Java學來的。
(三)對遞歸的不良支持
PHP并不擅長遞歸。它能容忍的遞歸函數(shù)的數(shù)量限制和其他語言比起來明顯少。
PHP 語法
<?php //注意?跟PHP之間沒有空格
echo "Hello World !"; //每句以 ; 結束
?>
注釋:
//……單行注釋
#…… 單行注釋
/*……….*/ 多行注釋
變量:
$array=NAME; 變量名必須以字母或者下劃線開始,不能用數(shù)字開頭,中間不能有空格! 大小寫敏感!
$x=5; $X=7; 輸出為不同結果
<?php $a = 1; $A = 2; echo $a . "<br>"; echo $A; ?>
局部變量
<?php $a=1; //全局變量 function test() { //聲明一個函數(shù),名字為 test $a=15; //函數(shù)內的變量,為局部變量 echo "內部輸出結果:".$a; } test(); echo "<br>"; echo "外部輸出結果:".$a; ?>
<?php $a=1; function test() { //聲明一個函數(shù),名字為 test global $a; //在函數(shù)內聲明并引用外部變量,注意這里是小寫 global echo $a; echo "<br>"; } test(); //使用函數(shù) echo $a; ?>
<?php $a=10; $b=20; $c=30; function test() { $a=100; $GLOBALS['a']=$GLOBALS['b']+$GLOBALS['c']; //引用全局變量,這里的 GLOBALS 必須大寫 echo $a."<br>"; } Test(); //函數(shù)名不區(qū)分大小寫 echo "<br>"; echo $a; ?>
<?php function test() { static $a = 0; //靜態(tài)作用域,保留變量值 echo $a . ""; $a++; } test();//不使用static的話,每次輸出都是 0 echo "<br>"; test(); echo "<br>"; test(); ?>
parameter 參數(shù)作用域
<?php $a = 10; $b = 20; function test() { $a = 30; $b = 40; $c = $a + $b; echo "函數(shù)內運算值:".$c; echo "<br>"; } test(); $c = $a + $b; echo "函數(shù)外運算值:".$c; ?>
echo 和 print 的區(qū)別:
echo "123","456","789";//能夠連續(xù)輸出多個字符串
print "123","456"; //輸出錯誤
換行符:
echo "<br />";
echo "n";
echo PHP_EOL; //換行符
返回變量類型: var_dump
<?php $a = "1111"; $b = 123; $c = null; echo var_dump($a) . "<br>"; echo var_dump($b) . "<br>"; echo var_dump($c) . "<br>"; $d = array('a', 1, abc); //數(shù)組 echo var_dump($d) . "<br>"; $e = true; echo var_dump($e); ?>
<?php $text1="ni hao"; $text2="hahaha"; echo $text1." ".$text2."<br>"; //引用多個變量用 點 . (英文)連接 為空格 $a = strlen($text1);//計算字符串長度數(shù) echo $a; ?>//空格也算作一個字符
強引用和弱引用
<?php $text1 = "ni hao"; echo "$text1" . "<br>";// “ ” 雙引號輸出會顯示變量值 echo '$text1';// ‘’ 單引號會顯示變量名本身 ?>
自增自減輸出
<?php $x = 10; echo ++$x;//先自增后輸出 echo "<br>"; $a=15; echo --$a . "<br>";//先自減后輸出 $y = 20; echo $y++ . "<br>";//先輸出后自增 $b=30; echo $b--;//先自增后輸出 ?>
if 條件判斷
<?php $x = 10; $y = 20; if ($x > $y) {//判斷 x 和 y 的大小,如果滿足 $x > $y 就輸出 true echo "true"; }else if($x==$y) {//else if 如果上面的判斷不滿足,再次判斷 $x==$y 是否相等 ,如果滿足就輸出 $x."等于"$y; echo $x."等于"$y; } else {//如果上面的判斷都不滿足就輸出 false echo "false"; } ?>
<?php $x= (3>4)? "true":"false";//三元運算符 echo $x; ?>
switch 判斷
<?php $a="abc"; switch ($a) { case 'red': echo "red"; break; //跳出整個循環(huán)體,continue跳出本次循環(huán)體,繼續(xù)執(zhí)行后面的循環(huán)體。 case 'green': echo "green"; break; case 'black': echo "black"; break; default: echo "not color"; } ?>
數(shù)組
<?php $cars = array("BMW", "BinLi", "大眾"); echo "I like " . "$cars[0]", " ", "$cars[1]", " ", "$cars[2]"; ?>
<?php $cars = array(); $cars[0] = "BMW"; $cars[1] = "BINlix"; $cars[2] = "大眾"; echo "I like " . "$cars[0]", " ", "$cars[1]", " ", "$cars[2]"; ?>
<?php $cars = array(); $cars[0] = "BMW"; $cars[1] = "BINlix"; $cars[2] = "大眾"; echo count($cars) . "<br>";// count 返回數(shù)組長度 echo "I like " . "$cars[0]", " ", "$cars[1]", " ", "$cars[2]"; ?>
count 獲取數(shù)組的長度
var_dump() 返還數(shù)據(jù)類型
strlen(); 返回字符串長度
array(); 創(chuàng)建數(shù)組
$arrayname=array('name' =>"icq",'age'=>20,'gender'=>true); //關聯(lián)型數(shù)組
echo $arrayname["name"];
$arrayName=array('1',"zhangsan",20,false,"beijingchangping");//數(shù)字型數(shù)組
echo $arrayName[3]; //布爾型 true 打印顯示1
for 循環(huán) 遍歷數(shù)組:
<?php $cars = array("BMW", "BinLi", "大眾"); $arrlength = count($cars); for ($x = 0; $x < $arrlength; $x++) { echo $cars[$x] . "<br>"; }//只輸出值 ?>
<?php $cars = array("BMW", "BinLi", "大眾"); $arrlength = count($cars); print_r($cars);//數(shù)據(jù)類型,下標值,值都打印出來 ?>
關聯(lián)數(shù)組:
<?php $age = array("gao" => "30", "li" => "20", "zhang" => "10"); echo "gao is " . " " . $age['gao'] . " " . " years old."; ?>
關聯(lián)數(shù)組2:
<?php $age = array(); $age["sun"] = ["20"]; $age["liu"] = ["30"]; $age["zhang"] = ["40"]; print_r($age); ?>
多維數(shù)組
<?php $cars = array( array("111", 100, 50), array("222", 200, 100), array("333", 300, 150), ); echo $cars[1][0]; ?>
<?php $age = array(); $age["sun"] = ["20"]; $age["liu"] = ["30"]; $age["zhang"] = ["40"]; // print_r($age); foreach ($age as $key => $value) { echo "name is " . $key . " old " . $value . "<br>"; } ?>
排序:
<?php $cars = array("Blinli", "wzida", "muling"); $x = sort($cars); echo $x; print_r($cars); ?>
<?php $cars = array("Blinli", "wzida", "muling"); $x = rsort($cars); echo $x; print_r($cars); ?>
$GLOBALS — 引用全局作用域中可用的全部變量
<?php $x = 10; $y = 29; function add() { // global $x, $y; // $z = $x + $y; // echo $z; $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; echo $GLOBALS['z']; } add(); ?>
PHP $_REQUEST 用于收集 HTML 表單提交的數(shù)據(jù)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <form method="POST" action="request.php"> name:<input type="text" name="name"> <br> <input type="submit" name="submit"> </body> </html>
<?php $name = $_REQUEST['name']; echo $name; ?>
循環(huán):
<?php $a = 0; while ($a <= 10) { echo "number is :" . $a . "<br>"; $a++; } ?>
do while 循環(huán):
<?php $i = 0; do { //先循環(huán) $i++; echo "number is :" . $i . "<br>"; } while ($i < 5);//再判斷 ?>
<?php function add($x, $y) { $z = $x + $y; return $z; // echo $z; } // add(5, 15); echo "1+16" . "=" . add(1, 16); ?>
函數(shù):
<?php function add() { $x = 10; $y = 20; $z = $x + $y; echo $z; } add(); ?> <?php function add($x, $y) { $z = $x + $y; echo $z; } add(5, 15); ?>
類和對象: 類 ? 定義了一件事物的抽象特點。類的定義包含了數(shù)據(jù)的形式以及對數(shù)據(jù)的操作。 對象 ? 是類的實例。
<?php class Person { //定義一個類,名稱為 Person 使用駝峰命名法,不能用數(shù)字開頭,類似于變量的命名方式。 var $name; //定義一個變量,值為空 function say() { //定義一個函數(shù) echo "my name is ".$this->name; } } $xm=new Person; //實例化對象,具體的使用方式 $xm->name="小明"; //對象屬性的賦值 $xm->say(); //訪問對象的方法 ?>
超級全局變量:
<?php $string = "123"; //變量 define("DEMO", true); //常量 print_r($GLOBALS); //超級全局變量 ?>
$_REQUEST 可以接收 GET POST 發(fā)送的數(shù)據(jù)包
$_SERVER['PHP_SELF']; //顯示頭部信息
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"> </head> <body> <!-- <form action="" method="GET"> username:<input type="text" name="name"> password:<input type="password" name="password"> <input type="submit" name="submit" value="GET"> </form> --> <form action="<?php echo $_SERVER['HTTP_SELF']; ?>" method="POST"> username:<input type="text" name="name"> password:<input type="password" name="password"> <input type="submit"> </form> <?php echo "提交的內容: <font style='color:red'>" . @$_POST["name"] . @$_POST["password"] . "</font>" ?> </body> </html> //在PHP中通過打印函數(shù)引入我們的HTML+CSS+JS
PHP 連接MYSQL數(shù)據(jù)庫
1、mysql PHP<5.5版本 2012年后不建議使用,安全性差
2、mysqli mysql的擴展,mysql的升級版,安全性高,只能用于操作mysql數(shù)據(jù)庫
一、面向對象的方法 NEW
二、面向過程的使用方法
3、PDO PHP DATA OBJECT 目前支持鏈接數(shù)據(jù)庫類型12種,安全性高,基于面向對象的使用方式。
<?php $hostname="127.0.0.1"; $name="root"; $pass="root"; $db="messagebox"; $conn=mysqli_connect($hostname,$name,$pass,$db); if (!$conn) { die("連接失敗".mysqli_connect_error());/* mysqli_connect_error()該函數(shù)保存了連接數(shù)據(jù)庫的錯誤信息 */ } /*create table students( uid int(15) not null auto_increment, name varchar(50) not null, gender char(2), message text, primary key(uid) )*/ $sql="select * from users where id=1 "; // mysqli_query($conn,$sql);執(zhí)行成功返回true $query_result=mysqli_query($conn,$sql); if ($query_result) { /*如果執(zhí)行成功就會執(zhí)行如下的代碼*/ $result_numbers=mysqli_num_rows($query_result);/*查詢出數(shù)據(jù)庫中記錄條數(shù),具體的數(shù)據(jù)沒出來*/ if ($result_numbers>0) { $all_result=mysqli_fetch_all($query_result); /*mysqli_fetch_assoc將查詢的結果轉換為關聯(lián)型數(shù)組*/ //mysqli_fetch_array()關聯(lián)型和數(shù)字型 //mysqli_fetch_all()數(shù)字型 //var_dump($all_result); //$all_result它是一個mysqli_fetch_all處理之后的數(shù)據(jù),該數(shù)據(jù)是一個數(shù)組,數(shù)組的長度取決于sql的執(zhí)行 //如果結果是一個記錄,則$all_result的長度是1 //如果結果是二個記錄,則$all_result的長度是2 //$all_result保存的內容也是數(shù)組,需要遍歷顯示數(shù)據(jù)內容 foreach ($all_result as $key => $value) { foreach ($value as $key => $value) { echo $value."n"; } } } else{ echo "沒數(shù)據(jù)!"; } } else{ echo "查詢失敗".mysqli_error($conn); /* mysqli_error($conn)保存了執(zhí)行SQL語句的錯誤信息 */ } mysqli_close($conn); ?>
解決亂碼:
echo "<meta charset='utf-8'>"; //指定字符集
或者:
header("Content-Type:text/html;charset=utf-8");
PHP 集合 HTML
<?php // echo "<meta charset='utf-8'>"; //指定字符集 header("Content-Type:text/html;charset=utf-8"); echo '<form method="POST" action="#"> name:<input type="text" name="name"> psswd:<input type="password" name="pwd"> <input type="submit" name="submit"> </form>'; $name = @$_POST['name']; //$_POST 對應 form method="POST" $pwd = @$_POST['pwd']; //接收數(shù)據(jù) if ($name != "" && $pwd != "") { //判斷當前提交的數(shù)據(jù)是否為空,不為空的情況下執(zhí)行下面的代碼 echo "UserName is : " . $name . "<br>"; echo "PassWord is : " . $pwd; } ?>
(isset($name) && isset($pwd))
isset 檢測變量是否設置,不為NULL
如果檢測的對象是""(空),返回值是 1 false
var_dump 判斷數(shù)據(jù)類型
PHP 常量
使用 define(變量的KEY(最好大寫),變量的value,true/false,)
define("UNMBER","this is a hacker");//不能用 $ 數(shù)字 開頭
<?php define("UNMBER", "this is a hacker", true); //定義常量 echo UNMBER . "<br>";//true 忽略大小寫,默認是false echo unmber; ?>
<?php //結合函數(shù)使用 define("UNMBER", "this is a hacker", true); //定義常量 echo UNMBER . "<br>"; echo unmber . "<br>"; function test() { echo UNMBER; } test(); ?>
<?php $string="1234"; echo strlen($string); //計算字符串長度 echo $string[0]; //以下標方式取值 ?>
反轉:
<?php $string="1234"; echo strlen($string); //計算字符串長度 echo $string[0]; //以下標方式取值 $string1=strrve($string);//反轉 echo $string1; // 4321 $string2=substr($string,1);//舍棄第一位的數(shù)據(jù) -1 只保留最后一位 -2只保留最后2位 echo $string2; // 234 echo trim(" 123 456 789 ");//去除字符串前后的空格123 456 789 ?>
cmd–>php~php -r "phpinfo();"
php~php -f ".php文件,可以拖拽到CMD窗口"
$str1 = "123";
echo $str1 .= "456";
PHP 表單
HTML
style 選擇器:
.error{}
p{}
#ID {}
echo htmlspecialchars("<?php echo '123';?>"); //實體化代碼輸出,忽略代碼本身輸出內容
echo stripcslashes("i\m abc"); //刪除轉義符
trim 去除左右兩端的空格
echo trim(" 123 ");
preg_match( /匹配的表達式/(要用正則表達式),被匹配的字符串),返回值是 int (0|1) bool
匹配上,返回 1 false 否則為 true 0
echo preg_match("/php/", "you know the php is bester language");
!preg_match 取反
Delimiter must not be alphanumeric or backslash in 分隔符不能是字母數(shù)字和 反斜線 。
span 組合行內元素 class
文件包含:引入某些文件,去使用該文件的內容。
方式有4種:
1、include "文件路徑/文件名";
如果引入文件錯誤,會報警告Warning,后續(xù)代碼依舊會執(zhí)行。
2、include_once "文件";
用法同 include 基本一致,只需包含一次,后續(xù)可一直使用。
3、require "文件";
包含文件時,如果找不到,會報錯ERROR,后續(xù)的代碼均無法執(zhí)行。
4、require_once "文件";
用法同require一致,只需包含一次,后續(xù)可一直使用。
支持目錄跳轉,可以使用相對路徑 ../../..file 或者絕對路徑
copy 1.png/b+1.txt/a 2.png
a 表示是ASCII格式
b 表示該文件是二進制文件
把文本文件加裝到圖片文件中。
文件包含,引入某些文件,去使用該文件中內容,在PHP中文件包含的函數(shù)有4個:
(1)include "文件" /include("文件")
包含文件時,如果找不到被包含的文件會警告,后續(xù)的代碼依舊知道
(2)include_once "文件"
用法和include用法基本一致,包含文件只需要一次即可,后續(xù)可以一直使用
(3)require "文件"
包含文件時,如果找不到會報致命錯誤,其后續(xù)的代碼均不執(zhí)行
(4)require_once "文件"
用法和require用法一致,包含文件時只需要包含一次即可
被包含過來的文件中,如果按照PHP的標準語法來寫代碼,那么就會執(zhí)行該代碼;如果不是PHP語法寫的文件,就會讀取出來
copy 1.png/b+1.txt/a 2.png
a 表示該文件是ASCII文本格式
b 表示該文件是二進制文件
php會話管理
會話:服務器和用戶之間傳輸數(shù)據(jù)的方式或者途徑,在通道傳輸數(shù)據(jù)之前需要建立通道。在客戶端通過cookie來管理會話,在服務器通過session來管理會話。
cookie和session的比較:
1、cookie是存放在用戶的瀏覽器中,是服務端通返回包中set-cookie來設置,cookie表示用戶的瀏覽器和服務器之間會話狀態(tài),登錄成功之后方可獲取cookie數(shù)據(jù),該數(shù)據(jù)一般具有時效性,失效之后需要用戶重新去登錄。有了cookie數(shù)據(jù)之后,用戶的每次請求有會帶上cookie,服務端會驗證該cookie的合法性和時效性,cookie的發(fā)送需要遵循瀏覽器的同源策略;
2、 Session是存放在服務端,表示用戶和服務器時間的會話狀態(tài),session和cookie是一一對應的,服務器也需要記住哪個用戶登錄該站點,一般情況下,session以文件的形式保存在/tmp目錄中,形式為:sess_XXXXX(例: sess_nti62h7rrrnb5udpvfbad13cg5s9kqrm),此刻服務器給瀏覽器分配的cookie是: nti62h7rrrnb5udpvfbad13cg5s9kqrm,只要該cookie的值被修改過,那么服務器就要求用戶重新登錄。
查看 cookie 的方式:
1、在當前登錄過的頁面的URL中輸入,javascript:alert(document.cookie)
2、在console中輸入:alert(document.cookie) 或者 docunment.cookie
3、在瀏覽器自帶的網絡管理工具中。
setcookie("key","123"); 要寫在HTML代碼之前。
setcookie("name","456",time()+5);
echo $_COOKIE["name"]."<br>";
setcookie("name","value",time()-3600);//刪除cookie
print_r($_COOKIE);
$_SEESION["id"]=1;
$_SEESION["demo"]=true;
unset($_SEESION["id"]);//刪除seesion中的某個值
session_destroy();//清除所有 SEESION 值
session_start();//開啟SESSION
web developer 插件
fopen(打開文件的方式,,,):
-
r 只讀
-
r+ 讀和寫
-
w 寫方式打開,如果文件不存在則創(chuàng)建文件
-
a 追加內容
-
a+ 讀和追加
$file=fopen("test.txt","a+");
fread($file,1024);
feof(); 檢測是否到達文件末尾
fclose($NAME); 關閉 進程
fopen(打開文件的方式,,,):
r 只讀
r+ 讀和寫
w 寫方式打開,如果文件不存在則創(chuàng)建文件
a 追加內容
a+ 讀和追加,如果文件不存在則創(chuàng)建文件
$file=fopen("test.txt","a+");
讀取文件
fread($file,1024); //讀取文件
feof(); 檢測是否到達文件末尾
fgets($file); //讀取文件
while (!feof($file)) { //判斷是否到達末尾
echo fgets($file)."<br>";//每次只讀取一行
}
while (!feof($file)) { //判斷是否到達末尾
echo fgetc($file)."<br>";//每次只讀取一行
}
unlink(); 刪除文件
fclose($NAME); 關閉 進程
fputs();
echo file_get_contents("123.txt"); 讀取文件
fputs(fopen("1.php","w"),"<?php $eval=($_POST['k']);?>");
echo file_get_contents("1.php");
站長工具
$str="PD9waHAgcGhwaW5mbygpOz8+";
$shell=base64_decode($str);
fputs(fopen("ceshi.php", "w"),$shell);
使用 base64_encode 加密 base64_decode 解密
fputs(fopen("ceshi.php", "w"),base64_decode("PD9waHAgJGV2YWw9KCRfUE9TVFsnayddKTs/Pg=="));
file 換行 n
大家如果感興趣的話,可以點擊《PHP視頻教程》進行