PHP從入門到精通

原文鏈接:https://www.cnblogs.com/1906859953Lucas/p/9656386.html

【原】PHP從入門到精通2小時【圖文並茂】

主要內容:

  1. 搭建PHP開發環境
  2. 第一個helloworld程序
  3. 變量
  4. 全局變量
  5. 循環結構
  6. 函數
  7. 數組
  8. 面向對象編程
  9. 繼承
  10. 接口
  11. 多態
  12. 日誌
  13. 文件的讀寫
  14. 時間格式和時區
  15. 創建圖形
  16. 從遠程獲取圖形
  17. 生成二維碼
  18. php與數據庫mysql的連接
  19. mysql數據庫面向對象編程
  20. cookie技術
  21. 查看cookie
  22. session技術
  23. 查看session
  24. 文件上傳

 

PHP(Hypertext Preprocessor)PHP超文本預處理程序,是一種嵌入HTML的腳本語言,運行在服務器。

如果有一定的編程基礎,1小時之內看完so easy!

搭建PHP開發環境

PHP開發環境主要3部分:服務器Apache,編程語言PHP,數據庫MySQL。搭建開發環境,直接使用XAMPP集成安裝就可以。

XAMPP=Apache+MySQL+PHP+Perl,X表示的是跨平臺。

官網下載安裝即可:https://www.apachefriends.org/zh_cn/index.html

 

( 安裝太簡單了,沒有什麼可說的,不過如果以前安裝過tomcat,apache,MySQL等,xampp的部分功能可能不能使用,解決辦法網上很多,不再贅言)

第一個helloworld程序

php可以使用note++進行編輯。

helloworld.php

1
2
3
<?php
    echo "hello world!";
?>

  

然後運行XAMPP的控制面板,點擊Apache的start,綠色就是正常運行了。

然後將helloworld.php文件放在路徑:C:\xampp\htdocs

瀏覽器輸入:http://localhost/helloworld.php

ok,我們的第一個PHP程序就完成了。

 

ps:以後我們將php文件放在一個單獨的文件夾basic中,便於管理

變量

變量,存儲數據的容器,在php中,使用$(美元符號)開頭的就是變量,可以給變量賦值,或者輸出變量的值。

另外,php語句以;(英文狀態半角的分號)結束。

1
2
3
4
5
6
7
8
<?php
     
    //$定義變量
        $text='this is a text';
    //輸出變量
        echo $text;
 
?>

  

全局變量

全局變量就是在所有的php文件範圍內都可以使用的變量(變量的概念,存儲數據的容器)

最常用的全局變量有$_GLOBAL,$_SERVER,$COOKIE,$_SESSION,__FILE__(注意是2個下劃線),__LINE__

php文件是嵌入到html、的一種語言,運行在服務器端,可以和html語言混合書寫。

這裏的.(點號)表示拼接字符串,echo可以輸出字符串。

global.php

1
2
3
4
5
6
7
8
9
10
11
<?php
    echo '當前執行腳本文件名:'.$_SERVER['PHP_SELF'].'<br/>';
    echo '當前執行腳本根目錄:'.$_SERVER['DOCUMENT_ROOT'].'<br/>';
    //單行註釋
    echo '當前執行腳本絕對路徑:'.$_SERVER['SCRIPT_FILENAME'].'<br/>';
    //print_r($_SERVER);
     
    //返回當前文件名,行號
    echo '當前文件名稱:<strong>'.__FILE__.'</strong><br/>';
    echo '當前行號:<strong>'.__LINE__.'</strong><br/>';
?>

打開瀏覽器,輸入:http://localhost/basic/global.php

 

 循環結構

循環主要就是for循環,和while循環,可以重複執行某一個動作,直到滿足條件

for(初始化計數值; 滿足條件就繼續執行 ; 執行後的操作,將計數值+1){ 執行的代碼; }

while( 滿足條件就繼續執行){ 執行的代碼;  將計數值+1 ;  }

for_while.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
    //for循環
    for($i=0;$i<10;$i++){
        echo 'good!  ';
    }
     
    echo '<br/>';
     
    //while循環
    $j=0;
    while($j<5){
        echo 'do...   ';
        $j++;
    }
?>

打開瀏覽器,輸入:http://localhost/basic/for_while.php

 

函數

這是任何一種語言的重點,包括php

func.php

1
2
3
4
5
6
7
8
9
10
<?php
     
    sum(1,3);
    //定義求和函數,帶2個參數
    function sum($a,$b){
        echo "$a+$b=".($a+$b);//雙引號會輸出變量,單引號輸出字符串
        echo '<br/>';
        echo '$a+$b='.($a+$b);
    }
?>
1
?>

打開瀏覽器,輸入:http://localhost/basic/func.php

 

 數組

數組分爲索引數組,關聯數組,使用print_r(數組)來輸出數組內容

var_dump(數組)查看詳細信息

可以使用foreach(數組 as 鍵 = > 值){  } 來循環輸出數組

array.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
    //索引數組
    $arr=array('小李','25','男','開發工程師');
    print_r($arr);
    //Array ( [0] => 小李 [1] => 25 [2] => 男 [3] => 開發工程師 )
     
    //關聯數組
    $array=array('姓名'=>'小明','年齡'=>'25','性別'=>'男','職業'=>'開發工程師');
    print_r($array);
    //Array ( [姓名] => 小明 [年齡] => 25 [性別] => 男 [職業] => 開發工程師 )
     
    echo '<br/>';
    //輸出詳細信息
    var_dump($arr);
    /*array(4) {
        [0]=> string(6) "小李"
        [1]=> string(2) "25"
        [2]=> string(3) "男"
        [3]=> string(15) "開發工程師"
    }*/
     
    echo '<br/>';
    //循環輸出數組
    foreach($array as $k=>$v){
        echo "鍵值對:$k --> $v".'<br/>';
    }
    /**
        鍵值對:姓名 --> 小明
        鍵值對:年齡 --> 25
        鍵值對:性別 --> 男
        鍵值對:職業 --> 開發工程師
    */
?>

  

 

以下內容就是編程技術的分水嶺,面向對象編程


 

 

 面向對象編程

在面向對象編程的思想中,有最重要的2句話:

  1. 類用來封裝代碼
  2. 對象用來封裝數據

首先來學習怎麼樣定義一個類:

類名前+class,類中有public的屬性,如$name,$sex,$age,還有public的方法say()

在類中,只要new一個對象,就自動會執行__construct構造方法

一個類被銷燬,或者程序執行完畢,自動執行__destruct()解構方法

類的屬性和方法,通過對象->指針符號調用

$this 表示當前對象。

classMehtod.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
    //定義一個類
    class ren{
        public $name;
        public $sex;
        public $age;
        //成員方法
        public function say(){
            echo '我的名字是'.$this->name.',性別是'.$this->sex.','.$this->age.'歲了<br/>';
        }
         
        //構造方法,只要new 就會執行
        function __construct($name,$sex,$age){
            $this->name=$name;
            $this->sex=$sex;
            $this->age=$age;
            echo '構造對象'.$this->name.'<br/>';
        }
         
        //解構方法,程序結束,對象銷燬時執行
        function __destruct(){
            echo '解構對象'.$this->name.'<br/>';
        }
    }
     
     
    //實例化對象
    $xiaoli=new ren('小李','男','25');
    $xiaoli->say();
    /*輸出:
        構造對象小李
        我的名字是小李,性別是男,25歲了
        解構對象小李
    */
?>

  

 

 繼承

面向對象編程思想中,有3個核心概念:

  1. 封裝
  2. 繼承
  3. 多態

封裝其實就是類,定義類就是將代碼封裝起來了。

其次就是繼承!

繼承的關鍵字:extends

$this 表示當前對象。

一個B類繼承另外一個類A,B會自動擁有A的所有的屬性和方法,而不用再書寫一遍(繼承的思想,程序員懶惰的直接體現,要是程序員也有一個有錢的爹可以繼承財富該多好。。。)

inherit.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
    //申明tool類
    class tool{
        function on(){
            echo '<br/>啓動<br/>';
        }
        function run(){
            echo '<br/>運行<br/>';
        }
        function off(){
            echo '<br/>關閉<br/>';
        }
    }
     
    //繼承inherit
    class fan extends tool{
        function app(){
            $this->on();
            $this->run();
            $this->off();
        }
    }
     
    //簡化使用
    $haierFan=new fan();
    $haierFan->app();
?>

  

 

 接口

接口是一種更加高級的繼承方法

定義接口的關鍵字:interface

實現(繼承)接口的關鍵字:implements

接口中的所有的方法都是默認public的,而且只要定義,不用實現(在實現類中實現具體方法)

interface.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
    //申明接口
    interface tool{
        function on();
        function run();
        function off();
    }
     
    //實現接口
    class fan implements tool{
        public $name;
        function on(){
            echo '<br/>'.$this->name.'風扇啓動<br/>';
        }
        function run(){
            echo '<br/>'.$this->name.'風扇運行<br/>';
        }
        function off(){
            echo '<br/>'.$this->name.'風扇關閉<br/>';
        }
         
        function __construct($name){
            $this->name=$name;
        }
    }
     
    //繼承inherit
    class haierfan extends fan{
        function app(){
            $this->on();
            $this->run();
            $this->off();
        }
    }
     
    //實例化
    $fan=new fan('美的 ');
    $fan->on();
    $fan->run();
    $fan->off();
     
    echo '<br/> ------------分割線------------ <br/>';
     
    //實例化
    $haierfan=new haierfan('海爾 ');
    $haierfan->app();
     
     
     
?>

  

 

多態

作爲面向對象編程的3大思想之一,多態也是一種高級技能

多態一般都是通過接口來實現的

就是調用同一個方法,執行得到的結果卻不同!!!

通過輸入參數的不同,執行結果不同,這就是多態

polymorphism.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
    //申明接口
    interface tool{
        function on();
        function run();
        function off();    
    }
     
    //實現接口
    class fan implements tool{
        public $name;
         
        function on(){
            echo '<br/>'.$this->name.'風扇啓動<br/>';
        }
        function run(){
            echo '<br/>'.$this->name.'風扇運行<br/>';
        }
        function off(){
            echo '<br/>'.$this->name.'風扇關閉<br/>';
        }
        function __construct($name){
            $this->name=$name;
        }
    }
    //實現接口
    class engine implements tool{
        public $name;
         
        function on(){
            echo '<br/>'.$this->name.'發動機啓動<br/>';
        }
        function run(){
            echo '<br/>'.$this->name.'發動機運行<br/>';
        }
        function off(){
            echo '<br/>'.$this->name.'發動機關閉<br/>';
        }
        function __construct($name){
            $this->name=$name;
        }
    }
     
     
    //狀態類
    class toolStatus{
        function ts($tool){
            $tool->on();
            $tool->run();
            $tool->off();
        }
    }
     
    //應用多態polymorphism
    $fan=new fan('海爾 ');
    $engine=new engine('奧迪 ');
    $toolStatus=new toolStatus();
     
    $toolStatus->ts($fan);
    $toolStatus->ts($engine);
?>

  

 


 

這又是一條牛逼的分割線,php基本功能就是以上的內容,下面是一些更加高階玩法。

 

日誌

log.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
    /*
        1、設置php.ini文件
        2、日誌分類
        3、查看日誌
    */
     
    //生成運行日誌
    error_log("FORM ".__FILE__." ERROR LINE:".__LINE__);
    /*需要設置正確的日誌路徑,確保路徑存在
        [15-Sep-2018 09:31:45 Europe/Berlin]
        這是來自C:/xampp/htdocs/basic/log.php 的一段自定義的報錯日誌信息
    */
     
    //生成系統日誌
    openlog('PHP7',LOG_PID,LOG_USER);
    syslog(LOG_WARNING,'向syslog發送自定義信息');
    closelog();
     
  
    try{
        $a=10;
        if(isset($b)){
            echo "程序正常執行";
        }else{
            throw new Exception();
        }     
    }catch(Exception $e){
        ERROR_LOG("錯誤代碼所在路徑:".$e->getFile());
        ERROR_LOG( "錯誤代碼所在行號:".$e->getLine());
    }
    echo "<br/>程序執行完畢<br/>";
    /*
    [15-Sep-2018 09:44:41 Europe/Berlin] 錯誤代碼所在路徑:C:\xampp\htdocs\basic\log.php
    [15-Sep-2018 09:44:41 Europe/Berlin] 錯誤代碼所在行號:26
    */
     
    //輸出日誌 依賴於文件的讀寫操作,後續將會學習
 
     
?>

  

 

查看運行日誌

 

 

 查看系統日誌

顯示亂碼主要是編碼字符集的問題,將log.php文件保存爲ANSI格式即可看到中文正常顯示,解決方法網上很多。

 

 文件的讀寫

fileIO.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
    //讀取文件
    //readfile('./test.txt');
     
     
    //訪問遠程文件,需要設置php.ini的 allow_fopen=On
    $html=file_get_contents('http://www.baidu.com');
    //輸出html頁面
    //echo $html;
     
    //設置時區
    //可以在文件開頭位置設置默認配置的時區,也可以在php.ini中進行設置
    ini_set('date.timezone','Asia/Shanghai');
    //date_default_timezone_set('asia/shanghai');
     
    //向文件中寫入內容
    /*
        1、打開文件
        2、寫入數據
        3、關閉文件
    */
    //$file=fopen('./test.txt','a+');//追加模式
    //$file=fopen('./test.txt','r+');//半覆蓋(數據多少覆蓋多少)   
    $file=fopen('./test.txt','w+');//全覆蓋
    if($file){
        fwrite($file,'寫數據123!\r\n換行了嗎?\r\n');//單引號不會換行
         
        fwrite($file,"寫數據123!\r\n換行了嗎?\r\n");//雙引號換行
        echo date("Y-m-d H:i:s").'寫入數據成功'.date("Ymd His");
        fclose($file);
    }
     
?>

  

 

 

 

 時間格式和時區

time.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
    //設置時區
    echo '<br/>默認時區時間:'.date("Y-m-d H:i:s").'<br/>';
     
    //可以在文件開頭位置設置默認配置的時區
    //也可以在php.ini中進行設置date.timezone(所有文件生效)
    ini_set('date.timezone','Asia/Shanghai');
     
    echo '<br/>上海時區時間:'.date("Y-m-d H:i:s").'<br/>';
     
    //或者直接設置時間格式
    date_default_timezone_set('asia/tokyo');
    echo '<br/>東京時區時間:'.date("Y-m-d H:i:s").'<br/>';
     
    echo '<br/>格式化時間:'.date("YmdHis").'<br/>';
    /*
 
        默認時區時間:2018-09-15 10:44:03
 
        上海時區時間:2018-09-15 16:44:03
 
        東京時區時間:2018-09-15 17:44:03
 
        格式化時間:20180915174403
    */
     
?>

  

 

創建圖形

image.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
    //創建畫布
    $img=imagecreate(500,500);
     
    //設置顏色
    //背景色
    $white=imagecolorallocate($img,255,255,255);
     
     
    //畫筆
    $black=imagecolorallocate($img,0,0,0);
     
     
    //矩形
    imagerectangle($img,100,100,300,300,$black);
     
    //輸出圖像前清理輸出緩衝
    ob_clean();
    //解決chrome兼容性問題
    header("Content-type:image/jpeg");
    //輸出圖像到瀏覽器
    imagejpeg($img) or die("創建圖像失敗<br/>");
     
    //釋放資源
    imagedestroy($img);
     
?>

  

 

 

從遠程獲取圖形

imageUrl.php

1
2
3
4
5
6
7
8
9
<?php
    $img=imagecreatefromjpeg('https://b-ssl.duitang.com/uploads/item/201607/04/20160704052649_WLyfB.jpeg');
     
    ob_clean();
    header('Content-type:image/jpeg');
    imagejpeg($img) or die('創建圖形失敗');
    imagedestroy($img);
     
?>

  

 

 

生成二維碼

vcode.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
 
    vcode(150,100);
     
    //生成驗證碼
    function vcode($width,$high){
        //創建畫布
        $img=imagecreate($width,$high);
         
        //設置背景色 黑色
        $black=imagecolorallocate($img,0,0,0);
        //設置畫筆 白色
        $white=imagecolorallocate($img,255,255,255);
         
        //產生隨機干擾線條
        for($i=0;$i<$width/20;$i++){
            imageline($img,rand(0,$width),rand(0,$high),rand(0,$width),rand(0,$high),$white);
        }
         
        //產生隨機干擾點
        for($i=0;$i<$width;$i++){
            imagesetpixel($img,rand(0,$width),rand(0,$high),$white);
        }
         
        //產生4個隨機字母,數字
        $data='';
        for($i=0;$i<4;$i++){
            switch(rand(1,3)){
                case '1':$ch=rand(0,9);break;
                case '2':$ch=sprintf('%c',rand(65,90));break;
                case '3':$ch=sprintf('%c',rand(97,122));break;
            }
            $data=$data.$ch;
        }
         
        //繪製truetype文字
        imagettftext($img,$high/3,rand(1,15),$width*0.1,$high*0.7,$white,'C:/Windows/Fonts/Arial.ttf',$data);
         
         
        //清理緩存
        ob_clean();
        //解決chrome兼容性問題
        header('Content-type:image/jpeg');
        //輸出到瀏覽器
        imagejpeg($img) or die('創建畫布失敗');
        imagedestroy($img);
    }
     
     
?>

  

 

 php與數據庫mysql的連接

mysql.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
 
    //連接數據庫
    $host='localhost';
    $username='root';
    $password='';
    $database='my_db';
    $conn=mysqli_connect($host,$username,$password,$database) or die('數據庫連接失敗!');
    //echo '數據庫連接成功!';
     
    //操作數據庫
    $sql='select * from cartoon';
    $result=mysqli_query($conn,$sql);
     
     
    //讀取返回信息
    while($obj=mysqli_fetch_assoc($result)){
        echo $obj['name'].'現在'.$obj['age'].'歲了。<br/>';
    }
     
    //關閉數據庫連接
    mysqli_close($conn);
     
?>

  

 

MySQL數據庫面向對象編程

mysql_obj.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php   
    // 創建連接
    $conn = new mysqli('localhost', 'root', '','my_db')or die("連接失敗: " . $conn->connect_error);
    if($conn){
        echo "數據庫連接<br/>";
    }
      
    //操作數據庫
    $sql = "SELECT * FROM cartoon;";
    $result=$conn->query($sql);
    while($row=$result->fetch_assoc()){
        echo "name:".$row['name']."-country:".$row['country']."<br/>";
    }
    /*
        name:校長-country:中國
        name:西門慶-country:中國
        name:武大郎-country:中國
        name:武松-country:中國 
    */
      
    //關閉連接
    //$conn->close();
     
    //$conn2=new mysqli('localhost','root','','my_db') or die('連接失敗:'.$conn2->connect_error);
    $sql2="SELECT * FROM cartoon;";//sql語句一定要用雙引號!!!
    $result2=$conn->query($sql2);
    //print_r($conn2->query($sql2));
     
    while($row2=$result2->fetch_assoc()){
        echo 'name:'.$row2['name'].',sex:'.$row2['sex'].'<br/>';
    }
    $conn->close();
    echo "數據庫關閉<br/>";
?>

  

 

cookie技術

cookie.php

cookie可以用於頁面之間傳值,沒有設置有效時間,那麼默認爲瀏覽器關閉失效

這就是會話cookie,保存在內存中
(關閉頁面不會失效,關閉瀏覽器纔會失效)

cookie.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
 
    //訪問時間
    echo '訪問時間<br/>';
    if(isset($_COOKIE['visittime'])){
        echo '您上一次訪問本網站是在:'.$_COOKIE['visittime'].'<br/>';
        echo '本次訪問時間是:'.date('Y-m-d H:i:s').'<br/>';
        setcookie('visittime',date('Y-m-d H:i:s'));
    }else{
        setcookie('visittime',date('Y-m-d H:i:s'));
        echo '這是您第一次訪問本網站<br/>';
    }
     
    //訪問次數
    echo '訪問次數<br/>';
    if(isset($_COOKIE['num'])){
        setcookie('num',$_COOKIE['num']+1);
        echo '這是您第'.$_COOKIE['num'].'次訪問本網站<br/>';       
    }else{
        setcookie('num',1+1);
        echo '歡迎您首次訪問本網站<br/>';
    }
     
    /*
    訪問時間
    您上一次訪問本網站是在:2018-09-16 05:09:22
    本次訪問時間是:2018-09-16 05:09:32
    訪問次數
    這是您第2次訪問本網站
    */
     
    //刪除cookie,有效時候爲過去時間即可,time()-1
    setcookie('num',1,time()-1);
    echo '$_COOKIE[num]已被註銷<br/>';
    print_r($_COOKIE);//再一次刷新頁面時纔會生效!!!
?>

  

 

查看cookie

 testcookie.php

1
2
3
4
5
6
7
8
<?php
      
    //創建cookie
    $sta=setcookie('testcookiename','testvalue',time()+60*60);
    if($sta){
        echo 'Cookie設置成功!';
    }
?>

  

chrome瀏覽器查看cookie

打開瀏覽器的設置》高級設置》

隱私設置/內容設置》所有cookie和網站數據

》找到你的網站名,以及cookie的名字,點擊打開即可看到保存到cookie的內容。

 

 session技術

session存儲在服務器,更安全,沒有長度限制
而cookie存儲在客戶機,客戶可以禁用cookie
session可以用於跨頁面請求,有一個隨機生成的唯一的session_id
典型的應用就是購物車

session.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
    /*
        session技術
        session存儲在服務器,更安全,沒有長度限制
        而cookie存儲在客戶機,客戶可以禁用cookie
        session可以用於跨頁面請求,有一個隨機生成的唯一的session_id
        典型的應用就是購物車
         
    */
     
    //準備工作,設置php.ini的session.save_path="C:\xampp\tmp"
    //啓動會話
    session_start();
     
    //設置session
    $_SESSION['name']='Peter';
    $_SESSION['password']='12345';
     
    echo 'Session 創建成功!<br/>';
    /*打開服務器的session文件查看
        name|s:5:"Peter";password|s:5:"12345";
    */
     
    print_r($_SESSION);
    //清空session,session文件只是清空
    $_SESSION=array();
    echo '<br/>註銷當前回話session<br/>';
    print_r($_SESSION);
     
     //銷燬session文件,session文件會被刪掉
    session_destroy();
    echo '<br/>session已經徹底銷燬<br/>';
    print_r($_SESSION);
?>

  

 

 查看session

 

如果銷燬了session

 

文件上傳

file_upload.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<html>
    <form method='post' enctype='multipart/form-data'>
        <input type='file' name='upfile' />
        <input type='submit' value='上傳' />
    </form>
</html>
 
<?php
    if(!empty($_FILES)){
        print_r($_FILES);
        $tmpname=$_FILES['upfile']['tmp_name'];//文件臨時名
        $name=$_FILES['upfile']['name'];//文件原名
         
        //文件會上傳到與該頁面文件同一個目錄
        move_uploaded_file($tmpname,$name) or die('文件上傳失敗,程序退出!');
        echo '<br/>文件上傳成功!<br/>';
    }else{
        echo '<br/>沒有上傳文件<br/>';
    }
 
?>

  

 

 

 

 

 ok,基本上php的內容學到這裏,就可以了。

 

分類: PHP, 總結
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章