重蔚自留地——PHP核心知識要點

編程語言 PHP MySQL 腳本語言 重蔚自留地 2017-05-04

重蔚自留地——PHP核心知識要點

Php:腳本語言,網站建設,服務器端運行

服務器:軟件,常見服務(HTTP,FTP,MySQL,telnet等)

軟件結構:c\s,b\s,PHP地位

Web訪問:IP,域名,hosts,域名服務器,網站,web訪問

搭建web服務器:Wamp,lamp,Apache安裝(www.apache.org),MySQL安裝,PHP安裝(無中文路徑,CMD執行php.exe -f,VC6和VC9),配置(Apache加載PHP模塊:LoadModule php5_module “PHP5apachedll路徑”;增加php處理:AddType application/x-httpd-php .php // <FilesMatch "\.php$"> SetHandler;加載php配置文件:windows,Apache配置文件加載PHPIniDir “PHP配置文件路徑”;配置PHP時區:date.timezone)

Php操作數據庫:PHP開啟MySQL擴展,指定擴展目錄(extension_dir)

Web運行原理:靜態,動態

虛擬主機配置:基於域名虛擬主機,包含vhost配置,編輯虛擬vhost文件(VirtualHost,ServerName,DocumentRoot),重啟,修改hosts文件,localhost重配

PHP簡介:發展歷程(1994:1.0個人perl,1996:2.0C底層,1998:3.0zendEngine,2000:4.0session+輸出緩衝等,2004:5.0zend引擎2代),平臺支持(window,Linux,UNIX),數據庫支持(Sqlserver,mysql,Oracle,Access),開發環境(Apache2,mysql,php)

PHP定義:一種服務器端的 HTML 腳本/編程語言,是一種簡單的、面向對象的、解釋型的、健壯的、安全的、性能非常之高的、獨立於架構的、可移植的、動態的腳本語言。是一種廣泛用於 Open Source(開放源代碼)的尤其適合 Web 開發並可以嵌入 HTML 的多用途腳本語言。它的語法接近 C,Java 和 Perl,而且容易學習。該語言讓 Web 開發人員快速的書寫動態生成的網頁。

PHP腳本執行:讀入源程序,zendEngine(詞法分析,語法分析),生成opcode,執行opcode,解釋,與編譯的區別

PHP工作:腳本(服務端腳本,需要web服務器和瀏覽器),命令行腳本

基本語法:腳本語言(嵌入html),PHP處理(標記識別),標記(<?php?>, <script language=”php”></script>默認,<?短標籤?>,<%asp標籤%>非默認,需開啟;不建議使用),最末尾標記可以忽略(建議忽略:Ajax返回,節省流量),PHP語句(分號結束,最後一條可以不加)

變量:$符號,有效變量名(字母或者下劃線開始,大小寫敏感),變量增刪改查(unset斷開連接),命名規則(駝峰法,下劃線)

常量:定義(define),直接使用,特點(不能修改,區分大小寫,不能刪除,常量值只能是標量,命名與變量同,無$),常量判斷(defined),輸出(constant(‘常量名’))

PHP註釋:行註釋,塊註釋

預定義變量:$_POST,$_GET,$_REQUEST,$_FILES,$_SESSION,$_COOKIE,$GLOBALS,$_SERVER,$_ENV

預定義常量:__FILE__,__LINE__,__DIR__,__FUNCTION__,__METHOD__,PHP_OS,PHP_VERSION,PHP_INT_SIZE,PHP_INT_MAX

可變變量

傳值:值傳遞,引用傳遞

數據類型:PHP若類型,八大數據類型(整型,浮點型,布爾型,字符型,數組型,對象型,資源型,空型),三大類(標量,複合,特殊)

整型:十進制,八進制(0),十六進制(0x),指定進制輸出(printf,%d,%o,%x),整型取值範圍(PHP_INT_SIZE,PHP_INT_MAX),字節,位,進制轉換(十轉其他,除取餘反取;其他轉十,求冪),整型溢出(浮點型),時間戳(格林威治時間,time,date)

浮點型:保留小數輸出(printf(‘%.2f’),float,double

布爾型:真假,TRUE,FALSE(非0),布爾值輸出使用var_dump,FALSE(FALSE,0,0.0,’’,’0’,空數組,null值)

字符串:單引號,雙引號,區別(解析變量,轉義,{},字符串數組),定界符(初始標記和結束獨佔一行,結束標記頂格,解析變量,轉義,實際應用xml)

運算符:算術運算符(+,-,*,/,%),賦值運算符(=,+=,-=,*=,/=,%=,.=),比較運算符(>,<,>=,<=,==,===,!=,!==),錯誤抑制符(@),自操作運算符(++,--),字符串運算符(.),三目運算符(? :),邏輯運算符(&&and,||or,!),位運算符(&,|,^,~,<<,>>)

原碼反碼補碼:正數原碼反碼補碼一樣,負數符號位除外求反,+1得補碼

流程控制:順序結構,分支結構(if,ifelse,ifelse[else],switch[case,break,default]),循環結構(for,while,dowhile,foreach,continue,break)

模板語法:標籤語法,分支結構和循環結構

函數:主要功能(代碼重用,模塊化編程),定義(function 函數名(參數列表)),調用(函數名(參數列表)),定義與調用無順序關係,形參,實參,參數傳遞(值傳遞,引用傳值,默認值),返回值(return中斷執行,單一返回值,多返回值[引用傳遞參數]),作用域(全局作用域,局部作用域,作用域針對變量,深入分析[js和PHP],超全局作用域,$GLOBALS和global)

作業:標籤語法寫乘法表

作業:打印*,求素數

作業:發牌程序

匿名函數

偽類型:mixed,number,callback,void,

數據類型轉換:int,integer,bool,Boolean,float,string,array,object,自動轉換(值轉換)

數據類型判斷:is_bool,is_float,is_integer,is_object,is_array,is_string,is_resource,is_scalar,is_null,is_numeric,gettype,settype

引用文件:require,include,require_once,include_once,作用(佈局,包含公共文件),文件載入原理(加載非執行,將編譯後的文件加載),require和include的區別,文件返回(配置文件)

終止腳本:return,exit,die

載入文件路徑:絕對路徑,相對路徑(./,../,/),文件載入的相對路徑問題

字符串相關函數:strlen,substr,strtolower,strtoupper,strrev,strpos,strrpos,strchr,strrchr(獲取文件後綴名),trim

時間相關函數:time,date,strtotime,microtime

數組:概念,使用數組原因(變量關聯),PHP數組特點(沒有數據類型,數組下標可為字符串[不能使用for循環遍歷],數組長度可變不會溢出),數組定義(array,[]),數組不能直接echo,數組長度(count,遍歷),foreach(原理:賦值+指針下移)

二維數組:定義,語法,二維數組遍歷,關聯二維數組,遍歷

Each+list:each(語法),list(語法,只能獲得索引數組元素,按照索引順序賦值),each和list組合遍歷數組,each與foreach區別(foreach原理,each原理)

數組相關函數:key,current,next,prev,end ,reset,array_keys,array_values,數據結構模擬(array_shift,array_unshift,array_push,array_pop),字符串分割(explode,implode),array_walk_recursive(回調函數,按址傳遞)

數組運算:+,array_merge

數組比較:==,===

其他函數: range,array_rand,shuffle

SQL注入:原理,解決方案(addslashes,magic_quotes_gpc),公共函數(array_walk_recursive對$_POST轉義)

數組算法:排序(冒泡,插入,選擇,快排),查找(自定義查找,二分法)

表單傳值:網站目的(數據管理:收集,整理,存儲,發佈),收集(表單實現),數據傳遞(url,form),傳值方式(get,post)

數據接收:$_GET,$_POST,$_REQUEST,數據處理,$_REQUEST不值得信任(覆蓋,request_order,variables_order)

點擊行為判斷:isset($_POST[‘submit’])/empty()

自動配置全局變量:register_gloabals

複選框使用:[],入庫(字符拼接),顯示覆選框信息(checked),批量刪除

文件上傳:概念,難點(瀏覽器端,服務端),流程(表單post,enctype=’multipart/form-data’,PHP配置file_uploads,配置項說明(file_uploades,upload_max_filesize,post_max_size,upload_tmp_dir)),文件上傳流程(本地選擇文件,提交,文件發送到服務器臨時目錄,轉義臨時文件)

PHP處理:$_FILES,$_FILES說明,文件移動(copy,move_uploaded_file),驗證文件類型(MIME),文件重命名(唯一性,可識別區分)

上傳函數封裝

多文件上傳:數組,$_FILES處理

作業:

1. 文件上傳保存到數據庫(路徑)

2. 站點計數功能:記錄訪客記錄,IP,訪問時間

3. 循環刪除空文件夾

4. 下載站點製作:數據庫實現(序號,文件名,描述,地址,下載次數,假名)

5. 斐波那契數列:後一下等於前兩項的和,求N項值

6. 100以內素數

文件操作:原因(保存不經常變化數據量小的數據;配置文件,流量統計,靜態網頁生成,文件下載。。。)

目錄操作:opendir,readdir,rewinddir,closedir,scandir

自定義實現scandir函數功能

文件判斷:file_exists,is_dir,is_file,mkdir,rmdir,getcwd,chdir,文件上傳按月分類管理

循環輸出文件夾下所有文件及子文件夾:靜態變量,函數遞歸(原理,遞歸點,遞歸出口)

文件操作:讀和寫,PHP5(file_get_contents,file_put_contents[FILE_APPEND,FILE_USE_INCLUDE_PATH],array file),PHP4(fopen,Mode[r,r+,w,w+,a,a+],fgetc,fgets,fread,fputs,fwrite,fclose,fseek)

文件相關函數:copy,unlink,rename,filemtime,filesize,fileperms

文件下載:html下載(a href=‘use.zip’,缺點:文件格式簡單,暴露文件完整路徑),PHP(header("Content-type: application/octet-stream"),header("Content-Disposition: attachment; filename=filename" ),輸出文件內容)

相關推薦

推薦中...