天天看點

【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

原創内容,轉載請注明。

主要内容:

  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開發環境主要3部分:伺服器Apache,程式設計語言PHP,資料庫MySQL。搭建開發環境,直接使用XAMPP內建安裝就可以。

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

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

【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

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

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

helloworld.php

<?php
    echo "hello world!";
?>
      

  

然後運作XAMPP的控制台,點選Apache的start,綠色就是正常運作了。

【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

然後将helloworld.php檔案放在路徑:C:\xampp\htdocs

【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

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

【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

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

ps:以後我們将php檔案放在一個單獨的檔案夾basic中,便于管理

【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

變量,存儲資料的容器,在php中,使用$(美元符号)開頭的就是變量,可以給變量指派,或者輸出變量的值。

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

<?php
    
	//$定義變量
        $text='this is a text';
	//輸出變量
        echo $text;

?>
      

全局變量就是在所有的php檔案範圍内都可以使用的變量(變量的概念,存儲資料的容器)

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

php檔案是嵌入到html、的一種語言,運作在伺服器端,可以和html語言混合書寫。

這裡的.(點号)表示拼接字元串,echo可以輸出字元串。

global.php

<?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

【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

 循環結構

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

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

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

for_while.php

<?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從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

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

func.php

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

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

【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

 數組

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

var_dump(數組)檢視詳細資訊

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

array.php

<?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
		鍵值對:性别 --> 男
		鍵值對:職業 --> 開發工程師
	*/
?>
      
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

以下内容就是程式設計技術的分水嶺,面向對象程式設計

 面向對象程式設計

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

  1. 類用來封裝代碼
  2. 對象用來封裝資料

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

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

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

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

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

$this 表示目前對象。

classMehtod.php

<?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歲了
		解構對象小李
	*/
?>
      
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

 繼承

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

  1. 封裝

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

其次就是繼承!

繼承的關鍵字:extends

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

inherit.php

<?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();
?>
      
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

 接口

接口是一種更加進階的繼承方法

定義接口的關鍵字:interface

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

接口中的所有的方法都是預設public的,而且隻要定義,不用實作(在實作類中實作具體方法)

interface.php

<?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();
	
	
	
?>
      
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

作為面向對象程式設計的3大思想之一,多态也是一種進階技能

多态一般都是通過接口來實作的

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

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

polymorphism.php

<?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從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

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

log.php

<?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
	*/
	
	//輸出日志 依賴于檔案的讀寫操作,後續将會學習

	
?>
      
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

檢視運作日志

【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

 檢視系統日志

顯示亂碼主要是編碼字元集的問題,将log.php檔案儲存為ANSI格式即可看到中文正常顯示,解決方法網上很多。

【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

 檔案的讀寫

fileIO.php

<?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);
	}
	
?>
      
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

 時間格式和時區

time.php

<?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
	*/
	
?>
      
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

image.php

<?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);
	
?>
      
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

imageUrl.php

<?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);
	
?>
      
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

vcode.php

<?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從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

 php與資料庫mysql的連接配接

mysql.php

<?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);
	
?>
      
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

MySQL資料庫面向對象程式設計

mysql_obj.php

<?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/>";
?>
      
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

cookie.php

cookie可以用于頁面之間傳值,沒有設定有效時間,那麼預設為浏覽器關閉失效

這就是會話cookie,儲存在記憶體中

(關閉頁面不會失效,關閉浏覽器才會失效)

<?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);//再一次重新整理頁面時才會生效!!!
?>
      
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

 testcookie.php

<?php
     
    //建立cookie
    $sta=setcookie('testcookiename','testvalue',time()+60*60);
    if($sta){
        echo 'Cookie設定成功!';
    }
?>
      

chrome浏覽器檢視cookie

打開浏覽器的設定》進階設定》

隐私設定/内容設定》所有cookie和網站資料

》找到你的網站名,以及cookie的名字,點選打開即可看到儲存到cookie的内容。

【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

 session技術

session存儲在伺服器,更安全,沒有長度限制

而cookie存儲在客戶機,客戶可以禁用cookie

session可以用于跨頁面請求,有一個随機生成的唯一的session_id

典型的應用就是購物車

session.php

<?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);
?>
      
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

 檢視session

【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

如果銷毀了session

【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

file_upload.php

<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/>';
	}

?>
      
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳
【原】PHP從入門到精通2小時【圖文并茂】搭建PHP開發環境第一個helloworld程式變量全局變量 循環結構函數 數組 面向對象程式設計 繼承 接口多态日志 檔案的讀寫 時間格式和時區建立圖形從遠端擷取圖形生成二維碼 php與資料庫mysql的連接配接MySQL資料庫面向對象程式設計cookie技術檢視cookie session技術 檢視session檔案上傳

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