国产无遮挡裸体免费直播视频,久久精品国产蜜臀av,动漫在线视频一区二区,欧亚日韩一区二区三区,久艹在线 免费视频,国产精品美女网站免费,正在播放 97超级视频在线观看,斗破苍穹年番在线观看免费,51最新乱码中文字幕

兩千行代碼的PHP學習筆記匯總

 更新時間:2014年10月05日 10:25:13   作者:黑眼詩人  
這篇文章主要介紹了兩千行代碼的PHP學習筆記匯總,由黑眼詩人整理匯總,包括了PHP學習中各類常見的技巧,非常具有實用價值,需要的朋友可以參考下

本文匯總了PHP學習中常見的各類問題,約有兩千多行代碼,都是非常實用的技巧。分享給大家供大家參考。具體如下:

//語法錯誤(syntax error)在語法分析階段,源代碼并未被執(zhí)行,故不會有任何輸出。

/* 【命名規(guī)則】 */
常量名 類常量建議全大寫,單詞間用下劃線分隔  // MIN_WIDTH
變量名建議用下劃線方式分隔      // $var_name
函數(shù)名建議用駝峰命名法        // varName
定界符建議全大寫         // <<<DING, <<<'DING'
文件名建議全小寫和下劃線、數(shù)字    // func_name.php
私有屬性名、方法名建議加下劃線    // private $_name _func
接口名建議加I_          // interface I_Name

/* 語言結(jié)構(gòu) */
array(), echo(), empty(), eval(), exit(), isset(), list(), print(), unset()
echo, print 可省略括號。

/* 預定義常量 */
PATH_SEPARATOR //路徑分隔符(Windows為分號,類Unix為冒號)
DIRECTORY_SEPARATOR //目錄分隔符
PHP_EOL //當前系統(tǒng)的換行符
PHP_VERSION //PHP版本號
PHP_OS //PHP服務操作系統(tǒng)
PHP_SAPI  //用來判斷是使用命令行還是瀏覽器執(zhí)行的,如果 PHP_SAPI=='cli' 表示是在命令行下執(zhí)行
PHP_INT_MAX          INT最大值,32位平臺時值為2147483647
PHP_INT_SIZE          INT字長,32位平臺時值為4(4字節(jié))
M_PI  //圓周率值
M_E   //自然數(shù)

//PHP運行環(huán)境檢測函數(shù)
php_sapi_name() //返回一個PHP與WEB服務器接口類型的小寫字符串
該函數(shù)返回值與常量PHP_SAPI一致!
接口類型:SAPI(the Server API, SAPI)
可能值:aolserver、apache、apache2filter、apache2handler、caudium、cgi、cgi-fcgi、cli、 continuity、embed、isapi、litespeed milter、nsapi、phttpd、pi3web、roxen、thttpd、tux、webjames


/* 大小寫問題 */
- 類名、方法名、屬性名、函數(shù)名:不區(qū)分大小寫
- 變量名、常量名、元素下標:區(qū)分大小寫

/* 可變標識符 */
可變變量 $i = 3; $k = 'i'; echo $$k; //輸出3
可變函數(shù) function func() {echo 'hello!';} $i = 'func'; $i(); //輸出hello
可變下標 $i = '1234'; $k = 3; echo $i[$k];  //輸出4
可變類名 class CLS{public $k = 'hello';} $i = 'CLS'; $j = new $i; echo $j->k;
可變屬性 class CLS{public $k = 'hello';} $i = 'k'; $j = new CLS; echo $j->$i;
可變方法 class CLS{public function k(){echo 'hello';}} $i='k'; $j=new CLS; $j->$i();

/* 可變變量 */
* 用于業(yè)務邏輯判斷得到某些具體信息
  $var_name = "class_name";
  $$var_name = "PHP0913";    // $class_name = "PHP0913";$class_name已存入內(nèi)存中
  var_dump($class_name);    // var_dump($$var_name);

/* 變量函數(shù) */
get_defined_vars  //返回由所有已定義變量所組成的數(shù)組(包括環(huán)境變量、服務器變量和用戶定義的變量)


/* unset() */
* unset()僅刪除當前變量名和引用,其值并未被刪除
* 引用傳遞中,刪除一個變量及其引用,其他變量及引用均存在,且值依然存在

   echo "<br />";
  $v3 = '值';
  $v4 = &$v3;
  unset($v4);
  var_dump($v3, $v4);

/* 變量的最長有效期 */
* 當前腳本的執(zhí)行周期,腳本執(zhí)行結(jié)束,變量即消失


/* 預定義變量/超全局變量 */
$GLOBALS
$_COOKIE
$_ENV
$_FILES
$_GET
$_POST
$_REQUEST
$_SERVER
$_SESSION


/* 常量定義 */
define(常量名, 常量值, [區(qū)分大小寫參數(shù)])    //true表示不區(qū)分/false表示區(qū)分大小寫
const 常量名 = 常量值  // 新,建議
常量名可以使用特殊字符
constant($name)    // 獲取常量名
          // 例:echo constant('-_-');


/* 常量相關函數(shù) */
defined
get_defined_constants


/* 預定義常量 */
__FILE__      所在文件的絕對路徑
__LINE__      文件中的當前行號
__DIR__      文件所在目錄
__FUNCTION__    函數(shù)名稱
__CLASS__      類的名稱
__METHOD__    類的方法名
__NAMESPACE__    當前命名空間的名稱


/* 整型 */
整型占用4字節(jié),共4*8=32位,最大值為2147483647,最小值為-2147483648,最小值的絕對值比最大值的大1
最高為表示正負,1表示負,0表示正


/* 進制轉(zhuǎn)換函數(shù) */
只能十進制與其他進制進行轉(zhuǎn)換,只有六種
轉(zhuǎn)換時,參數(shù)應是字符串(即不可含八進制的“0”或十六進制的“0x”)
  dec
   bin
   oct
  hex
hexdec()  十六進制轉(zhuǎn)十進制    也可寫hex2dec()
dechex()  十進制轉(zhuǎn)十六進制    也可寫dec2hex()
bindec()  二進制轉(zhuǎn)十進制    也可寫bin2dec()
decbin()  十進制轉(zhuǎn)二進制    也可寫dex2bin()
octdec()  八進制轉(zhuǎn)十進制    也可寫oct2dec()
decoct()  十進制轉(zhuǎn)八進制    也可寫dec2oct()


/* 浮點數(shù) */
浮點數(shù)不能比較大小 ?。?!
幾乎所有小數(shù),在保存時都是近似值而不是精確值!
最大值:+/- 1.8E308
PHP所能保存的最長小數(shù)位:14位

/* 單引號字符串 */
單引號字符串中,只能轉(zhuǎn)義反斜杠和單引號

/* 雙引號字符串 */
只解析字符串一次 ?。。?
eval   把字符串作為PHP代碼執(zhí)行
大括號包裹變量,可確定變量名界限。如:"aaa{$bbb}ccc"
雙引號中可以將ASCII碼轉(zhuǎn)換為字符
"\x61" -> a  // 字符串中不需0,整型中才是0x前導
"\x49\x54\x43\x41\x53\x54" -> ITCAST
將ASCII轉(zhuǎn)成字符函數(shù)chr()
將字符轉(zhuǎn)成ASCII函數(shù)ord()
#雙引號轉(zhuǎn)義列表
\n 換行
\r 回車
\t 水平制表符
\\ 反斜線
\$ 美元標記
\v 垂直制表符
\e Escape
\f 換頁
\" 雙引號"
\[0-7]{1,3} 符合該正則表達式序列的是一個以八進制方式來表達的字符 
\x[0-9A-Fa-f]{1,2} 符合該正則表達式序列的是一個以十六進制方式來表達的字符 



/* 定界符 */
herodoc - 功能同雙引號,能解析
$str = <<<AAA
字符串內(nèi)容
AAA;

nowdoc - 功能同單引號,不能解析
只在開始位置有單引號
$str = <<<'AAA'
字符串內(nèi)容
AAA;


/* 字符串的使用 */
可將字符串當作一個字符的集合來使用,可獨立訪問每個字符。僅適用于單字節(jié)字符(字母、數(shù)字、半角標點符號),像中文等不可用
$str = "abcd";
echo $str[3];  // d
echo $str{0};  // a


/* 【類型操作函數(shù)】 */
//獲取/設置類型
gettype($var) //獲取變量的數(shù)據(jù)類型
settype($var, $type) //設置變量的數(shù)據(jù)類型

//類型判斷
is_int
is_float
is_null
is_string
is_resource
is_array
is_bool
is_object    
is_numeric   檢測變量是否為數(shù)字或數(shù)字字符串

//轉(zhuǎn)換成指定的數(shù)據(jù)類型
boolval
floatval
intval
strval

//強制轉(zhuǎn)換類型
(int)
(float)
(string)
(bool)
(array)
(object)
(unset) //轉(zhuǎn)換為NULL
(binary) 轉(zhuǎn)換和 b前綴轉(zhuǎn)換 //轉(zhuǎn)換成二進制

var_dump    打印變量的相關信息。
        顯示關于一個或多個表達式的結(jié)構(gòu)信息,包括表達式的類型與值。
        數(shù)組將遞歸展開值,通過縮進顯示其結(jié)構(gòu)。
var_export($var [,bool $return]) //輸出或返回一個變量的字符串表示
  $return:為true,則返回變量執(zhí)行后的結(jié)果
print_r     打印關于變量的易于理解的信息
empty      檢查一個變量是否為空
isset      檢測變量是否存在

/* 【流程控制】 */
//if語句的替代語法
if (條件判斷) :
  語句塊;
elseif (條件判斷) :
  語句塊;
else :
  語句塊;
endif;

//流程控制的替代語法
在嵌入HTML時常用
將 { 換成 : , 將 } 換成 endif; 等
endif
endwhile
endfor
endforeach
endswitch


/* 【switch】 */
switch (條件) {
  case 狀態(tài)值1:
    語句塊;
    [break;]
  case 狀態(tài)值2:
    語句塊;
    [break;]
  case 狀態(tài)值3:
  case 狀態(tài)值4:
    語句塊;
    [break;]
  default:
    語句塊;
    [break;]
}
switch是狀態(tài)分支,特殊的循環(huán)
先計算出狀態(tài)值,再去與判斷數(shù)作比較
break退出流程


/* 【for循環(huán)】 */
for (條件初始化表達式; 條件判斷表達式; 條件變化表達式) {
循環(huán)體
}

假設循環(huán)體被執(zhí)行了N次,則
條件初始化表達式被執(zhí)行1次
條件判斷表達式被執(zhí)行N+1次
條件變化表達式被執(zhí)行N次

注意:
  1. 循環(huán)變量在for語句結(jié)束后還可以繼續(xù)使用,值為第一次失敗的值
  2. 循環(huán)變量在for循環(huán)體內(nèi)可以使用
  3. 任何條件表達式均可省略,但分號不能省略
    a. 條件初始化表達式被省略時,循環(huán)變量被賦值為null,在與條件判斷時,
      進行類型轉(zhuǎn)換后再比較。也可以在for語句外進行初始化。
    b. 條件判斷表達式被省略時,表示循環(huán)為真,進入死循環(huán)
    c. 條件變化表達式被省略時,可以在循環(huán)體內(nèi)完成
  4. 每個表達式均可由多條語句組成,每條語句之間使用逗號分割
    如果條件判斷表達式由多條語句組成,都會執(zhí)行,但只有最后一條語句才作為判斷條件
  5. for只能遍歷數(shù)值型索引下標數(shù)組
    數(shù)組長度函數(shù):count()
  6. 應該將可以初始化的語句均放在條件初始化表達式內(nèi),這樣可以省去很多執(zhí)行次數(shù)


/* 【goto】5.3+ 版本 */
用來跳轉(zhuǎn)到程序中的某一指定位置
該目標位置可以用目標名稱 加上冒號來標記。
PHP中的goto有一定限制,只能在同一個文件和作用域中跳轉(zhuǎn),
  也就是說你無法跳出一個函數(shù)或類方法,也無法跳入到另一個函數(shù)。
  你也無法跳入到任何循環(huán)或者switch結(jié)構(gòu)中。
  常見的用法是用來跳出循環(huán)或者switch,可以代替多層的break。 
可以從循環(huán)(switch)中跳出來,但不能從外部跳轉(zhuǎn)進去。而函數(shù)或類方法,向外向內(nèi)均不可。
goto a;
echo 'Foo';
a:
echo 'Bar';


/* 【文件加載】 */
require / include / require_once / include_once
文件載入只是載入目標文件內(nèi)的代碼并執(zhí)行,與載入的文件類型無關

文件載入屬于執(zhí)行階段,當執(zhí)行到require等語句時,才載入該文件的代碼,
  編譯并執(zhí)行,然后回到require等語句位置繼續(xù)執(zhí)行下面的語句
【注意】
  在載入開始時,先退出PHP模式;
  再載入目標文件代碼,執(zhí)行該代碼;
  結(jié)束時,再進入PHP模式。
require:處理失敗,產(chǎn)生 E_COMPILE_ERROR 錯誤,腳本中止。
include:處理失敗,產(chǎn)生 E_WARNING 錯誤,腳本繼續(xù)執(zhí)行。

#不建議使用require_once/include_once


/* 【相對路徑】 */
當前瀏覽器請求的哪個腳本,當前位置就是屬于哪個腳本。
./file 和 file 都表示當前目錄下的file文件
file情況(嵌套載入文件時):
如果當前目錄沒找到該文件就在代碼文件所在目錄中繼續(xù)找。
如果當前目錄找到有該文件,則不會再在代碼文件所在目錄去找也不會再加載。
__DIR__   腳本文件所在目錄
__FILE__  腳本文件路徑

include_path  加載文件查找目錄
  set_include_path() 設置include_path,可多個,用字符串作參數(shù)
  該函數(shù)設置的path只針對該當前文件有效
  該設置只針對查找未直接寫文件路徑方式有效
  設置新的include_path會覆蓋原來的

  get_include_path() 獲取當前include_path設置項,無參數(shù)

  路徑分隔符,在Windows下是分號,在Linux下是冒號
  利用預定義常量 PATH_SEPARATOR 來獲得當前的分隔符

如果直接寫文件名:
  1. include_path所設置的
  2. 當前目錄
  3. 代碼所在文件的目錄
如果文件名前帶有路徑,則會直接根據(jù)路徑查找,include_path直接被忽略


/* 【return】 */
return與require結(jié)合,可返回文件的內(nèi)容,return寫在被載入的文件內(nèi)
return可以終止所在腳本的執(zhí)行,作為普通腳本語句
return可以返回函數(shù)的相應值


/* 【終止和延遲腳本執(zhí)行】 */
die / exit  終止
return是終止所在腳本的執(zhí)行
die和exit會立即終止腳本執(zhí)行
die("到此為止");   該函數(shù)內(nèi)的字符串可被輸出
sleep() 延遲(單位:秒)
  默認最多可延遲30秒,PHP配置可以修改 max_execution_time
  例:sleep(12);
usleep()  以指定的微秒數(shù)延遲執(zhí)行
time_sleep_until  使腳本睡眠到指定的時間為止


/* 【函數(shù)】 */
1. 函數(shù)的聲明是在編譯時,故先定義再調(diào)用,定義與調(diào)用無先后關系!
2. 文件只是代碼的載體,程序均在內(nèi)存中執(zhí)行!
3. 如果函數(shù)的定義在需要載入的文件內(nèi),則需要先載入該文件,否則調(diào)用出錯!
4. 函數(shù)的定義可以出現(xiàn)在其他的代碼段中,此時函數(shù)不會在編譯階段被執(zhí)行
  只有被執(zhí)行到時才會被定義!只有獨立定義時才會被編譯在內(nèi)存中!
  如果出現(xiàn)在其他函數(shù)體內(nèi),也需要外層函數(shù)被調(diào)用時才被定義并生效!
5. 函數(shù)名不區(qū)分大小寫
6. 不允許重名,包括系統(tǒng)函數(shù)
7. 【可變函數(shù)】
  函數(shù)名可以用其他變量代替
  $func_name = "sayHello";
  $func_name();    //此時調(diào)用sayHello()函數(shù)
  注意:只有在調(diào)用時才能使用變量,定義時不允許!
8. 變量可作為函數(shù)名調(diào)用函數(shù),數(shù)組元素值也可以!
9. 形式參數(shù)parameter,實際參數(shù)argument
  可以對參數(shù)傳遞 null,表示該形參不想傳遞值
  形參與實參之間既可值傳遞,也可引用傳遞。
  引用傳遞參數(shù),應該在定義函數(shù)時就在形式參數(shù)前加上 & 符號,而此時調(diào)用函數(shù)實參必須為變量
  如何選擇使用哪種傳遞方式?
    a. 是否需要保證原始數(shù)據(jù)的完整性
    b. 是否需要增加效率
    c. 對大數(shù)據(jù)引用傳遞可節(jié)省內(nèi)存
10. 參數(shù)默認值
    a. 函數(shù)的參數(shù)默認值必須是已經(jīng)確定的值,不能是變量!
      只要在調(diào)用之前定義該常量,則可以使用常量作為參數(shù)默認值
    b. 函數(shù)默認值可以有多個,建議將有默認值的參數(shù)放在參數(shù)列表的最后面
      這樣可以在調(diào)用函數(shù)時,不賦予后面有默認值的參數(shù)值,否則會出錯
    c. 默認參數(shù)可以是非標量類型,比如數(shù)組、null
    d. 任何默認參數(shù)必須放在任何非默認參數(shù)的右側(cè)
11. 參數(shù)數(shù)量
  a. 形參數(shù)量多于實參數(shù)量
    報告警告級別錯誤,并以NULL代替
  b. 實參多于形參
    不報告錯誤,依次為形參賦值
  c. 不確定參數(shù)數(shù)量
    1) 一個形參都不定義,永遠都是實參多于形參
    2) 【可變數(shù)量參數(shù)】
      func_get_args() 獲取當前函數(shù)被調(diào)用時所有實參的值,返回一個所有實參值組成的數(shù)組
      func_get_arg() 獲取某個實參的值,通過索引值標識,e.g: func_get_arg(0)
      func_num_args() 獲取所有實參的數(shù)量
12. 【return】返回值
  a. 函數(shù)只有一個返回值,可以通過返回一個數(shù)組來得到類似的結(jié)果,但可以有多條return語句
  b. return語句會立即中止函數(shù)的運行,并將控制權交回調(diào)用該函數(shù)的代碼行
  c. 可以返回包括數(shù)組和對象的任意類型
  d. 函數(shù)的返回也分值傳遞和引用傳遞(返回的是一個變量才可)
    1) 默認是值傳遞方式
    2) 引用傳遞方式:
      - 定義函數(shù)時,函數(shù)名前加上& 表示該函數(shù)可以返回引用
      - 調(diào)用函數(shù)時,函數(shù)名前加上& 表示取得函數(shù)返回的引用
        此時,函數(shù)外修改返回值,會修改函數(shù)內(nèi)的該返回變量的值
      - 如果函數(shù)需返回引用,則需要返回一個變量才可以
      - 從函數(shù)返回一個引用,必須在函數(shù)聲明和指派返回值給一個變量時都使用引用操作符&
        function &returns_reference(){return $someref;}
        $newref =& returns_reference();
    3) 返回引用的作用


/* 【變量作用域】 */
a. 全局變量和局部變量
  1) 作用域之間不重疊,即不同作用域的變量,之間不可訪問
  2) 全局作用域 - 函數(shù)之外的區(qū)域
  3) 局部作用域 - 函數(shù)內(nèi)的區(qū)域,每個函數(shù)都是一個獨立的作用域

b. 超全局變量,既可以在全局也可在局部使用,僅能用系統(tǒng)自帶的,均是數(shù)組變量。
  $GLOBALS  $_COOKIE  $_ENV    $_FILES $_GET
  $_POST   $_REQUEST  $_SERVER  $_SESSION
c. $GLOBALS
  1) 不能存在超全局變量,但可以有超全局的數(shù)據(jù)!
  2) 將需要的數(shù)據(jù)放到超全局變量的數(shù)組內(nèi),但統(tǒng)一使用$GLOBALS
  3) $GLOBALS 特征
    - 每個全局變量就是對應$GLOBALS內(nèi)的一個元素!
      每當增加一個全局,則自動在$GLOBALS內(nèi)增加一個同名元素!
      同理,每當增加元素,也會增加一個全局變量,一般在函數(shù)內(nèi)增加
    - 做的任何修改,也會映射到另一個,包括更新和刪除
      在函數(shù)內(nèi)訪問全局變量,只需使用$GLOBALS
    - 出現(xiàn)過的全局變量,就可以通過$GLOBALS這個數(shù)組取得
  4) PHP生命周期中,定義在函數(shù)體外部的所謂全局變量,函數(shù)內(nèi)部是不能直接獲得的
4) global關鍵字(不建議使用)
  將局部變量聲明為同名全局變量的一個'引用'!相當于常量的引用傳遞
    global $var;  // $var = &$GLOBALS['var'];
    不同于$GLOBALS?。?!
  global在函數(shù)產(chǎn)生一個指向函數(shù)外部變量的別名變量,而不是真正的函數(shù)外部變量。
  $GLOBALS確確實實調(diào)用是外部的變量,函數(shù)內(nèi)外會始終保持一致。
  global的作用是定義全局變量,但是這個全局變量不是應用于整個網(wǎng)站,而是應用于當前頁面,包括include或require的所有文件。
d. 
  1) 作用域只針對變量,對常量無效
  2) 被載入文件中定義的變量作用域取決于被載入的位置。
    函數(shù)外被載入就是全局,函數(shù)內(nèi)被載入就是局部!


/* 【變量生命周期】 */
1. 腳本結(jié)束時,全局變量消失
2. 函數(shù)執(zhí)行完時,局部變量消失
3. 靜態(tài)變量
  static關鍵字
    靜態(tài)變量僅在局部函數(shù)域中存在,但當程序執(zhí)行離開此作用域時,其值并不丟失。
    靜態(tài)變量僅會被初始化一次,其他局部變量每次被調(diào)用時都會被重新賦值。
    static聲明的靜態(tài)變量的生命周期會被一直延續(xù)。


/* 【迭代和遞歸】 */
迭代比遞歸效率高!
迭代是一種思想(算法),結(jié)構(gòu)和使用上如同循環(huán)!
遞歸是一種思想(算法),將大問題拆分成小問題,逐一解決小問題以解決大問題
  要求大問題和小問題的解決方案是一致的!
  遞歸的結(jié)構(gòu)和語法體現(xiàn)如圖函數(shù)。函數(shù)體內(nèi)調(diào)用函數(shù)本身!
  遞歸出口:當該問題可以解決時,則不用再遞歸


/* 【匿名函數(shù)/閉包函數(shù)】 */
匿名函數(shù),也叫閉包函數(shù)(closures),允許臨時創(chuàng)建一個沒有指定名稱的函數(shù)。

1. 定義匿名函數(shù)時,不需增加函數(shù)名。
2. PHP對匿名函數(shù)的管理,以一個對象的方式進行處理。
3. 匿名函數(shù)應該存放到變量內(nèi)。
4. 匿名函數(shù)通過Closure類來實現(xiàn)
5. 可以使用函數(shù)作為函數(shù)的參數(shù)和返回值
6. 聲明函數(shù)時可以使用 use($param) 來向函數(shù)中傳入函數(shù)外的變量,結(jié)合變量引用來實現(xiàn)閉包
7. 可以用變量引用函數(shù)
$func = function ($e) {
  echo $e;
};  //結(jié)束時,需分號結(jié)束,如同變量賦值
var_dump($func);   //使用匿名函數(shù)
$func('ITCAST');   //函數(shù)的調(diào)用
  這不是可變函數(shù),而是對象。Closure閉包類
//use語法
匿名函數(shù)傾向于值的概念,可能出現(xiàn)在任何地方。
use可以使得匿名函數(shù)使用其外部作用域的變量。非全局!
use與全局的區(qū)別:
  use使用其外部作用域的變量
function out() {
  $v = "in out";
  $func = function () use (& $v) {
    var_dump($v);
  }
}
  use類似參數(shù)的自動傳遞,也支持值與引用的傳遞方式。
//作用
  常作為'臨時函數(shù)'被調(diào)用(只在某個地方被調(diào)用的函數(shù))
  例如:
    PHP存在一個array_map()函數(shù),功能是針對一個函數(shù)內(nèi)每個元素,去調(diào)用某個函數(shù)
    操作結(jié)果(array) = array_map(操作函數(shù), 操作數(shù)組);
    $result_arr = array_map(function ($v) {return $v3}, $arr);

//閉包用法實例
function closureCreater() {
  $x = 1;
  return function($fun = null) use(&$x) {//按引用傳值
    echo "<br />" . $x++;
    $fun and $fun();
  };
}

$x = "hello world";
$test = closureCreater();
$test();
$test(function(){ echo "closure test one"; });
$test(function(){ echo "closure test two"; });
$test(function() use($x){ echo "<br />".$x;});

//將函數(shù)保存為數(shù)組元素
$x = 'outer param.';
$arr = array();
$arr[] = function($str)use($x){ return $str.$x; };
echo $arr[0]('test fun in arr,');


/* 【數(shù)組】 */
關聯(lián)數(shù)組:鍵和值有關聯(lián),鍵表示值的邏輯含義。
索引數(shù)組:鍵和值無關聯(lián),鍵表示值的位置。通常下標從0開始,遞增元素
count($var [,$mode]) //統(tǒng)計數(shù)組元素個數(shù)
  $mode可選,設為1或true時則遞歸統(tǒng)計
  $var非數(shù)組,返回1;$var未初始化或等于null或空數(shù)組,返回0

//鍵名的使用
整型數(shù)字鍵不需加引號($arr[1])
字符串數(shù)字鍵也不需加引號($arr = array('1'=>'abc'); $arr[1])
關聯(lián)數(shù)組,字符串鍵需加引號($arr = array('a'=>'aaa'); $arr['a'])
關聯(lián)數(shù)組,雙引號中解析變量,可不加引號($arr = array('a'=>'aaa'); "$arr[a]")

/* 【指針】 */
current/pos  返回當前被內(nèi)部指針指向的數(shù)組單元的值,并不移動指針。
key      返回數(shù)組中當前單元的鍵名,并不移動指針
next    將數(shù)組中的內(nèi)部指針向前移動一位,并返回移動后當前單元的值。先移動,再取值。
prev    將數(shù)組的內(nèi)部指針倒回一位,并返回移動后當前單元的值先移動,再取值。
end      將數(shù)組的內(nèi)部指針指向最后一個單元,并返回最后一個單元的值
reset    將數(shù)組的內(nèi)部指針指向第一個單元,并返回第一個數(shù)組單元的值

each  返回數(shù)組中當前的鍵/值對并將數(shù)組指針向前移動一步。
      返回的是一個由鍵和值組成的長度為4的數(shù)組,下標0和key表示鍵,下標1和value表示值
        在執(zhí)行each()之后,數(shù)組指針將停留在數(shù)組中的下一個單元
          或者當碰到數(shù)組結(jié)尾時停留在最后一個單元。
          如果要再用 each 遍歷數(shù)組,必須使用 reset()。

  1. 以上指針操作函數(shù),除了key(),若指針移出數(shù)組,則返回false。而key()移出則返回null。
  2. 若指針非法,不能進行next/prev操作,能進行reset/end操作
  3. current/next/prev   若遇到包含空單元(0或"")也會返回false。而each不會!

list  把數(shù)組中的值賦給一些變量。list()是語言結(jié)構(gòu),不是函數(shù)
      僅能用于數(shù)字索引的數(shù)組并假定數(shù)字索引從0開始
      /* 可用于交換多個變量的值 */ list($a, $b) = array($b, $a);
  例:list($drink, , $power) = array('coffee', 'brown', 'caffeine');

1. 復制數(shù)組,其指針位置也會被復制。
  特例:如果數(shù)組指針非法,則拷貝的數(shù)組指針會重置,而原數(shù)組的指針不變。
  【指針問題】
    誰第一個進行寫操作,就會開辟一個新的值空間。與變量(數(shù)組變量)值傳遞給誰無關。
    數(shù)組函數(shù)current()被定義為寫操作,故會出現(xiàn)問題。
    foreach遍歷的是數(shù)組的拷貝,當被寫時,才會開辟一個新的值空間。
      即,foreach循環(huán)體對原數(shù)組進行寫操作時,才會出現(xiàn)指針問題。
      如果開辟新空間時指針非法,則會初始化指針。
2. 如果指針位置出現(xiàn)問題,則reset()初始化一下就可解決。


/* 【遍歷數(shù)組】 */
* 先找到元素,再獲取鍵和值

foreach
  foreach (array_expression as [$key =>] & $value)
   當foreach開始執(zhí)行時,數(shù)組內(nèi)部的指針會自動指向第一個單元。
   獲取元素信息后,移動指針,再執(zhí)行循環(huán)體
   1. foreach本身循環(huán)結(jié)構(gòu),break和continue適用于foreach
   2. foreach支持循環(huán)的替代語法。
   3. $value是保存元素值的變量,對其修改不會改變數(shù)組的元素值
   4. $value支持元素值的引用拷貝,在$value前加上&即可
   5. $key不支持引用傳遞
   6. foreach遍歷的是原數(shù)組的拷貝,而在循環(huán)體對數(shù)組的操作是操作原數(shù)組
      即循環(huán)體對數(shù)組的操作,對原數(shù)組生效,對遍歷不生效。
      先拷貝一份數(shù)組用作遍歷

while...list...each
while (list($key, $val) = mysql_fetch_row($result)) = each($arr) {
 echo "$key => $val\n";
}



/* 【數(shù)組函數(shù)】 */
//統(tǒng)計計算
count    計算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€數(shù)
array_count_values 統(tǒng)計數(shù)組中所有的值出現(xiàn)的次數(shù)
array_product    計算數(shù)組中所有值的乘積
array_sum      計算數(shù)組中所有值的和
range    建立一個包含指定范圍單元的數(shù)組

//獲取數(shù)組內(nèi)容
array_chunk    將一個數(shù)組分割成多個
  array array_chunk(array $input, int $size[, bool $preserve_keys]) 
array_filter  用回調(diào)函數(shù)過濾數(shù)組中的單元
array_slice   從數(shù)組中取出一段
  array array_slice($arr, $offset [,$len [,$preserve_keys]])
array_keys    返回數(shù)組中所有的鍵名
  array array_keys(array $input[, mixed $search_value[, bool $strict]] )
  如果指定了可選參數(shù) search_value,則只返回該值的鍵名。否則input數(shù)組中的所有鍵名都會被返回。
array_values  返回數(shù)組中所有的值,并建立數(shù)字索引

array_merge    合并一個或多個數(shù)組
  一個數(shù)組中的值附加在前一個數(shù)組的后面。
  如果輸入的數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個值。
  如果數(shù)組包含數(shù)字鍵名,后面的值將不會覆蓋原來的值,而是附加到后面。
  如果只給了一個數(shù)組并且該數(shù)組是數(shù)字索引的,則鍵名會以連續(xù)方式重新索引。 
array_merge_recursive  遞歸地合并一個或多個數(shù)組

//搜索
in_array      檢查數(shù)組中是否存在某個值
  bool in_array(mixed $needle, array $haystack[, bool $strict])
array_key_exists  檢查給定的鍵名或索引是否存在于數(shù)組中
  isset()對于數(shù)組中為NULL的值不會返回TRUE,而 array_key_exists()會
array_search    在數(shù)組中搜索給定的值,如果成功則返回相應的鍵名

array_combine  創(chuàng)建一個數(shù)組,用一個數(shù)組的值作為其鍵名,另一個數(shù)組的值作為其值
  如果兩個數(shù)組的單元數(shù)不同或者數(shù)組為空時返回FALSE。
array_rand    從數(shù)組中隨機取出一個或多個單元,返回鍵名或鍵名組成的數(shù)組,下標是自然排序的
array_fill   用給定的值填充數(shù)組
  array_fill($start, $num, $value)
array_flip   交換數(shù)組中的鍵和值
array_pad    用值將數(shù)組填補到指定長度
array_reverse  返回一個單元順序相反的數(shù)組
array_unique  移除數(shù)組中重復的值
array_splice  把數(shù)組中的一部分去掉并用其它值取代

implode      將數(shù)組元素值用某個字符串連接成字符串
explode($delimiter, $str [,$limit])  //使用一個字符串分割另一個字符串
  $delimiter不能為空字符串""

array_map    將回調(diào)函數(shù)作用到給定數(shù)組的單元上,只能處理元素值,可以處理多個數(shù)組
  如果callback參數(shù)設為null,則合并多個數(shù)組為一個多維數(shù)組
array_walk    對數(shù)組中的每個成員應用用戶函數(shù),只能處理一個數(shù)組,鍵和值均可處理,與foreach功能相同
  bool array_walk ( array &$array , callback $funcname [, mixed $userdata ] )

//棧:后進先出
入棧和出棧會重新分配索引下標
array_push    將一個或多個單元壓入數(shù)組的末尾(入棧)
array_pop    將數(shù)組最后一個單元彈出(出棧)    使用此函數(shù)后會重置(reset())array 指針。

//隊列:先進先出
隊列函數(shù)會重新分配索引下標
array_unshift  在數(shù)組開頭插入一個或多個單元
array_shift    將數(shù)組開頭的單元移出數(shù)組      使用此函數(shù)后會重置(reset())array 指針。

//排序函數(shù)
sort      對數(shù)組排序
rsort      對數(shù)組逆向排序
asort      對數(shù)組進行排序并保持索引關系
arsort      對數(shù)組進行逆向排序并保持索引關系
ksort      對數(shù)組按照鍵名排序
krsort      對數(shù)組按照鍵名逆向排序
usort      使用用戶自定義的比較函數(shù)對數(shù)組中的值進行排序
uksort      使用用戶自定義的比較函數(shù)對數(shù)組中的鍵名進行排序
uasort      使用用戶自定義的比較函數(shù)對數(shù)組中的值進行排序并保持索引關聯(lián)
natsort      用用“自然排序”算法對數(shù)組排序
natcasesort    用“自然排序”算法對數(shù)組進行不區(qū)分大小寫字母的排序
array_multisort 對多個數(shù)組或多維數(shù)組進行排序
shuffle      將數(shù)組打亂
  引用傳遞參數(shù),返回bool值。
  重新賦予索引鍵名,刪除原有鍵名

//差集
array_udiff_assoc  帶索引檢查計算數(shù)組的差集,用回調(diào)函數(shù)比較數(shù)據(jù)
array_udiff_uassoc 帶索引檢查計算數(shù)組的差集,用回調(diào)函數(shù)比較數(shù)據(jù)和索引
array_udiff     用回調(diào)函數(shù)比較數(shù)據(jù)來計算數(shù)組的差集
array_diff_assoc  帶索引檢查計算數(shù)組的差集
array_diff_key   使用鍵名比較計算數(shù)組的差集
array_diff_uassoc  用用戶提供的回調(diào)函數(shù)做索引檢查來計算數(shù)組的差集
array_diff_ukey   用回調(diào)函數(shù)對鍵名比較計算數(shù)組的差集
array_diff     計算數(shù)組的差集
//交集
array_intersect_assoc 帶索引檢查計算數(shù)組的交集
array_intersect_key 使用鍵名比較計算數(shù)組的交集
array_intersect_uassoc 帶索引檢查計算數(shù)組的交集,用回調(diào)函數(shù)比較索引
array_intersect_ukey 用回調(diào)函數(shù)比較鍵名來計算數(shù)組的交集
array_intersect 計算數(shù)組的交集
array_key_exists 用回調(diào)函數(shù)比較鍵名來計算數(shù)組的交集
array_uintersect_assoc 帶索引檢查計算數(shù)組的交集,用回調(diào)函數(shù)比較數(shù)據(jù)
array_uintersect 計算數(shù)組的交集,用回調(diào)函數(shù)比較數(shù)據(jù)

extract($arr [,$type [,$prefix]])  從數(shù)組中將變量導入到當前的符號表(接受結(jié)合數(shù)組$arr作為參數(shù)并將鍵名當作變量名,值作為變量的值)
compact($var [,...])  建立一個數(shù)組,包括變量名和它們的值(變量名成為鍵名而變量的內(nèi)容成為該鍵的值)




/* 【偽類型】 */
mixed    說明一個參數(shù)可以接受多種不同的(但并不必須是所有的)類型。
number    說明一個參數(shù)可以是 integer 或者 float。
callback  回調(diào)函數(shù)
void    void作為返回類型意味著函數(shù)的返回值是無用的。
      void作為參數(shù)列表意味著函數(shù)不接受任何參數(shù)。


/* 【數(shù)據(jù)庫操作】 */
#連接認證
mysql_connect    連接并認證數(shù)據(jù)庫
#發(fā)送SQL語句,接收執(zhí)行結(jié)果
mysql_query      發(fā)送SQL語句
    僅對select, show, explain, describe語句執(zhí)行成功返回一個資源標識符,其他語句成功返回true。執(zhí)行失敗均返回false。
#處理結(jié)果
mysql_fetch_assoc  從結(jié)果集中取得一行作為關聯(lián)數(shù)組
    每次只取回一條,類似each
  結(jié)果集中記錄指針
mysql_fetch_row    從結(jié)果集中取得一行作為枚舉數(shù)組
mysql_fetch_array  從結(jié)果集中取得一行作為關聯(lián)數(shù)組,或數(shù)字數(shù)組,或二者兼有
  array mysql_fetch_array ( resource $result [, int $ result_type ] )
  可選參數(shù)result_type可選值為:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH(默認)
mysql_free_result  釋放結(jié)果內(nèi)存
#關閉鏈接
mysql_close      關閉連接


/* 【類和對象】 */
# 成員:
  類成員:類常量、靜態(tài)屬性、靜態(tài)方法
  對象成員:非靜態(tài)屬性、非靜態(tài)方法
  # 除此外,類不能包含任何其他東西!??!

# 類名、方法名、屬性名均不區(qū)分大小寫
# $this代表本對象,self代表本類,parent代表父類
# 類和函數(shù)均可被事先編譯(僅作為最外層時)
# 類的定義必須在單一的PHP區(qū)塊內(nèi),不能被多個PHP標簽分割

// 構(gòu)造方法
- 具有構(gòu)造函數(shù)的類會在每次創(chuàng)建新對象時先調(diào)用此方法
void __construct([ mixed $args [, $... ]] )
- 構(gòu)造方法所需參數(shù)由new實例化對象時,給類增加參數(shù)值。
- 構(gòu)造方法也可以被手動調(diào)用。
- 5.3.3版本以前,支持于類名同名的方法作為構(gòu)造方法。
- 兩種沖突時,__construct 優(yōu)先

// 析構(gòu)方法
- 析構(gòu)函數(shù)會在到某個對象的所有引用都被刪除或者當對象被顯式銷毀時執(zhí)行。
void __destruct( void )
# 作用:釋放對象所占用的資源
# 調(diào)用的時機 
  - 腳本結(jié)束時所有資源均被釋放,包括對象
  - 手動刪除對象時
  - 保存對象的變量被賦予新值時(任何值,包括null)
  - 在使用exit()終止腳本運行時也會被調(diào)用

// 靜態(tài)成員(static關鍵字)
  - 聲明類成員或方法為static,就可以不實例化類而直接訪問。
  - 靜態(tài)成員(屬性或方法)均屬于類,故不能通過$this或->訪問。
  - 靜態(tài)成員是所有對象共享,屬于類。
  - 靜態(tài)成員用類調(diào)用,非靜態(tài)成員用對象調(diào)用。
# 靜態(tài)屬性
  - 靜態(tài)屬性不可以由對象通過->操作符來訪問。
  - 靜態(tài)屬性只能被初始化為一個字符值或一個常量,不能使用表達式。 所以你可以把靜態(tài)屬性初始化為整型或數(shù)組,但不能指向另一個變量或函數(shù)返回值,也不能指向一個對象。
# 靜態(tài)方法
  - 由于靜態(tài)方法不需要通過對象即可調(diào)用,所以偽變量$this在靜態(tài)方法中不可用。
  - 用::方式調(diào)用一個非靜態(tài)方法會導致一個E_STRICT級別的錯誤。

// 訪問解析操作符(::)
  - 可以用于訪問靜態(tài)成員、方法和常量,還可以用于覆蓋類中的成員和方法。 
  - 當在類的外部訪問這些靜態(tài)成員、方法和常量時,必須使用類的名字。 
  - self 和 parent 這兩個特殊的關鍵字是用于在類的內(nèi)部對成員或方法進行訪問的。

// 訪問辨析
- 對象成員,內(nèi)部通過$this指定,外部通過對象名指定,均用->訪問,訪問屬性時不需加$。
  對象名->屬性名  對象名->方法名()  $this->屬性名    $this->方法名()
- 類成員,內(nèi)部通過self或parent指定,外部通過類名指定,均用::訪問,訪問屬性時需加$。
  類名::$屬性名  類名::方法名()    self::$屬性名    self::方法名()
- 特殊:也可以通過對象訪問類成員。(不建議)
  對象名::$類屬性名  $this::$類屬性名  對象名::$類方法名()  $this::類方法名()
# 對象成員訪問用->,類成員訪問用::

- 無論是靜態(tài)方法還是非靜態(tài)方法,均可通過類或?qū)ο筮M行訪問。
- 靜態(tài)屬性通過類訪問,靜態(tài)方法通過對象訪問。
- 只有使用對象調(diào)用非靜態(tài)方法時,$this才可以使用!
- 靜態(tài)方法不可使用$this。
- 類可以調(diào)用對象方法,但注意方法內(nèi)不能有$this。
- 非靜態(tài)方法可以調(diào)用靜態(tài)屬性或靜態(tài)方法,反之不可以。

// 類常量
- 常量的值將始終保持不變。
- 在定義和使用常量的時候不需要使用$符號。
- 常量的值必須是一個定值,不能是變量,類屬性或其它操作(如函數(shù)調(diào)用)的結(jié)果。
# 定義:const 常量名 = 常量值;
- 不需要加public等訪問修飾限定符
- 類常量屬于類,使用類訪問,類名::類常量 或 self::類常量

// 自動加載對象
- 在試圖使用尚未被定義的類時自動調(diào)用 __autoload 函數(shù)
- 自動加載使用到的類名文件(根據(jù)類名找相應名稱的文件,故需類名與類文件名一致)
- 每個需要加載類的文件都需要存在__autoload函數(shù)
- 將__autoload函數(shù)寫入單獨的文件,每個需要用到類的文件再require該函數(shù)文件
- __autoload 參數(shù)是類名
function __autoload($class_name) {
  require_once $_SERVER["DOCUMENT_ROOT"] . "/class/$class_name.php";
}
  // $_SERVER["DOCUMENT_ROOT"] 當前運行腳本所在的文檔根目錄
- 可以通過類名,來推導出類所在的文件名!
- 如果一個項目存在多個自動加載函數(shù)時,定義一個可以完成加載的普通函數(shù),并在函數(shù)之前使用spl_autoload_register注冊該函數(shù)。
# spl_autoload_register
- 注冊__autoload()函數(shù)
bool spl_autoload_register ([ callback $autoload_function ] )
- 可以注冊多個自動加載函數(shù),先注冊的先執(zhí)行
- 一旦注冊自動加載函數(shù),__autoload就失效。
- 注冊函數(shù)時,參數(shù)為函數(shù)名(注意加引號);注冊方法時,參數(shù)為數(shù)組
# 注冊類或?qū)ο蟮姆椒樽詣蛹虞d方法時,參數(shù)需為數(shù)組:
spl_autoload_register(array(__CLASS__, '__autoload'));
__CLASS__表示當前類名,若是對象可用$this,詳細見手冊

// 序列化(串行化)
# 數(shù)據(jù)傳輸均是字符串類型
# 除了資源類型,均可序列化
# 序列化在存放數(shù)據(jù)時,會存放數(shù)據(jù)本身,也會存放數(shù)據(jù)類型
作用:1.在網(wǎng)絡傳輸數(shù)據(jù)時;2.為了將數(shù)組或?qū)ο蠓旁诖疟P時
# 序列化
serialize    產(chǎn)生一個可存儲的值的表示
string serialize ( mixed $value )
- 返回字符串,此字符串包含了表示value的字節(jié)流,可以存儲于任何地方。
- 有利于存儲或傳遞 PHP 的值,同時不丟失其類型和結(jié)構(gòu)。
# 反序列化
unserialize    從已存儲的表示中創(chuàng)建PHP的值
mixed unserialize ( string $str [, string $callback ] )
- 對單一的已序列化的變量進行操作,將其轉(zhuǎn)換回PHP的值。


# 文件的讀寫操作
- file_put_contents    將一個字符串寫入文件
int file_put_contents($file, $data [,$flags])
  $flags:FILE_USE_INCLUDE_PATH(覆蓋),F(xiàn)ILE_APPEND(追加)
- file_get_contents    將整個文件讀入一個字符串
string file_get_contents($file [, bool $use_include_path [,int $offset [,int $maxlen]]])

# 對象序列化
- 只能序列化對象內(nèi)部的數(shù)據(jù),即非靜態(tài)屬性。
# 需在反序列化對象之前加載類,也可以觸發(fā)自動加載機制。

__sleep    序列化需序列化的屬性。
    - 提交未提交的數(shù)據(jù),或類似的清理操作,部分串行化對象。
    - 返回一個包含對象中所有應被序列化的變量名稱的數(shù)組
__wakeup  反序列化時,預先準備對象需要的資源
    - 重新建立數(shù)據(jù)庫連接,或執(zhí)行其它初始化操作
  public function __sleep() {
    return array('server', 'username', 'password', 'db');
  }
  public function __wakeup() {
    $this->connect();
  }

// 對象繼承
class 子類名 extends 父類 {}
如果一個對象是子類的對象,那么同時也是父類的對象。
單繼承:一個類只能繼承一個父類,不能同時繼承多個類。但一個父類可以被多個子類繼承。

instanceof  判斷某對象是否為某類的對象
  對象名 instanceof 類名

// 訪問控制
public    公有的(繼承鏈、本類、外部均可訪問)
protected  保護的(僅繼承鏈、本類可訪問)
private    私有的(僅本類可訪問)
根據(jù)成員定義位置、訪問位置判斷。
# 兼容性問題
- 聲明屬性時,var關鍵字聲明的默認為public權限
- 聲明方法時,省略訪問修飾符,默認為public權限

// 重寫 override
$this代表本對象,被誰調(diào)用,就代表哪個對象。
- 繼承時,子類成員名于父類成員名發(fā)生沖突,則子類成員會重寫父類成員。
- 屬性和方法均可被子類重寫。
- 當父類的方法或?qū)傩砸呀?jīng)不滿足子類的需求,則需要重寫。
- 也可能因為命名不規(guī)范導致重寫。

私有屬性不能被重寫,每個私有屬性都會被記錄。在記錄屬性名的同時,還會記錄類。

如果有內(nèi)置函數(shù)被重寫,則可調(diào)用父類方法。如調(diào)用父類構(gòu)造方法parent::__construct()

# 重寫限制
訪問限制:
  子類的成員的訪問控制必須相等或弱于父類。
方法參數(shù)限制:
  參數(shù)數(shù)量必須相同,參數(shù)名可不同。

# $this確定原則
$this為調(diào)用該方法的對象,表示該方法的執(zhí)行環(huán)境對象。
  - 對象調(diào)用
  - 環(huán)境的傳遞。如果當前調(diào)用時,不能確定$this的值(靜態(tài)調(diào)用),此時靜態(tài)調(diào)用所處對象環(huán)境會傳遞到被調(diào)用的方法內(nèi)。
$this并非永遠代表本對象,而是由方法的執(zhí)行環(huán)境決定。

# final
如果父類中的方法被聲明為final,則子類無法覆蓋(重寫)該方法。
如果一個類被聲明為final,則不能被繼承。
但加有final關鍵字的類依舊能被實例化!
# 抽象類
關鍵字:abstract
抽象類不能直接被實例化,必須先繼承該抽象類,然后再實例化子類。
抽象類中至少要包含一個抽象方法。非抽象類不能包含抽象方法。
如果類方法被聲明為抽象的,那么其中就不能包括具體的功能實現(xiàn)。抽象方法不能包含大括號及方法體。
繼承一個抽象類的時候,子類必須實現(xiàn)抽象類中的所有抽象方法。
  即,子類必須重寫抽象父類中的所有抽象方法。
另外,這些方法的可見性必須和抽象類中一樣(或者更為寬松)。
  即,如果抽象類中某個抽象方法被聲明為protected,那么子類中實現(xiàn)的方法就應該聲明為protected或者public,而不能定義為private。
- 抽象類的子類中的普通方法執(zhí)行方式和其他類相同。
- 作用:
  1. 繼承,為擴展類,統(tǒng)一公共操作。
  2. 限制結(jié)構(gòu)(規(guī)范)。規(guī)范子類的結(jié)構(gòu)。

// 接口
關鍵字:interface
- 對象提供的與對象交互的方式就是接口。
- 使用接口可以指定某個類必須實現(xiàn)哪些方法,但不需要定義這些方法的具體內(nèi)容。
- 通過interface來定義一個接口,就像定義一個標準的類一樣,但其中定義所有的方法都是空的。 
- 接口中定義的所有屬性和方法都必須是public,可省略public關鍵字。
- 接口中也可以定義常量(const)。接口常量和類常量的使用完全相同。
  可以用::訪問。接口名::常量名,實現(xiàn)類::常量名。
  它們都是定值,可以被子類或子接口使用,但不能修改。
- 接口不能定義屬性!
# 定義接口
interface 接口名 {
  接口內(nèi)容(公共方法聲明的集合)
}
# 接口實現(xiàn)
- 要實現(xiàn)一個接口,可以使用implements操作符。
- 類中必須實現(xiàn)接口中定義的所有方法,否則會報一個fatal錯誤。
- 如果要實現(xiàn)多個接口,可以用逗號來分隔多個接口的名稱。
- 實現(xiàn)多個接口時,接口中的方法不能有重名。
- 接口也可以繼承,通過使用extends操作符。
class 類名 implements 接口名 {
  接口方法的實現(xiàn)
}
# 注意
  1. 類與抽象類之間是繼承關系,類與接口之間是實現(xiàn)關系。
  2. 類與抽象類是單繼承,類與接口是多實現(xiàn)。
  3. 接口不是類,限制類的結(jié)構(gòu)。
  4. 接口與接口之間是多繼承。用extends關鍵字。
    interface I_C extends I_A, I_B {}

// 靜態(tài)延遲綁定
self::,代表本類(當前代碼所在類)
  永遠代表本類,因為在類編譯時已經(jīng)被確定。
  即,子類調(diào)用父類方法,self卻不代表調(diào)用的子類。
static::,代表本類(調(diào)用該方法的類)
  用于在繼承范圍內(nèi)引用靜態(tài)調(diào)用的類。
  運行時,才確定代表的類。
  static::不再被解析為定義當前方法所在的類,而是在實際運行時計算的。

// 對象的遍歷(迭代)
- 對象通過屬性保存數(shù)據(jù),故遍歷對象的屬性。
- foreach語言結(jié)構(gòu),獲得屬性名和屬性值。
  foreach ($obj as $p_name => $p_value) {}
# 自定義遍歷(迭代器Iterator)
Iterator - 可在內(nèi)部迭代自己的外部迭代器或類的接口
Iterator::current  — 返回當前元素
Iterator::key    — 返回當前元素的鍵
Iterator::next    — 向前移動到下一個元素
Iterator::rewind  — 返回到迭代器的第一個元素
Iterator::valid    — 檢查當前位置是否有效

# 對象的克隆
//對象之間的傳值是[引用]傳遞。
克?。盒聦ο?= clone 舊對象
  - 所有的引用屬性仍然會是一個指向原來的變量的引用。 
__clone()方法在對象被克隆時自動調(diào)用。
注意:構(gòu)造方法對應實例化(new),克隆方法對應克隆(clone)。

// 單例模式
#三私一公
單例模式(Singleton)用于為一個類生成一個唯一的對象。最常用的地方是數(shù)據(jù)庫連接。使用單例模式生成一個對象后,該對象可以被其它眾多對象所使用。
# 防止一個類被實例化多次
class MySQLDB {
  private static $instance = null; // 存類實例在此屬性中
  // 構(gòu)造方法聲明為private,防止直接創(chuàng)建對象
  private function __construct() {}
  public static function getInstance() {
    if(! self::$instance instanceof static) {
      self::$instance = new static;
    }
    return self::$instance;
  }
  private function __clone() {} // 阻止用戶復制對象實例
}

// 魔術方法
__construct    構(gòu)造方法
__destruct    析構(gòu)方法
__clone      克隆對象
__sleep      序列化對象
__wakeup    反序列化對象
__autoload    自動加載,使用類但未找到時

__toString    對象被當作字符串使用時
__invoke    當嘗試以調(diào)用函數(shù)的方式調(diào)用一個對象時

# 重載 overload
指動態(tài)地"創(chuàng)建"類屬性和方法
用戶可以自由的為對象添加額外的屬性,該特性就是重載。
所有的重載方法都必須被聲明為public。
當調(diào)用當前環(huán)境下未定義或不可見的類屬性或方法時,重載方法會被調(diào)用。
重載相關魔術方法的參數(shù)都不能通過引用傳遞。
# 屬性重載
- 處理不可訪問的屬性
屬性重載只能在對象中進行。
# 屬性重載對于靜態(tài)屬性無效
在靜態(tài)方法中,這些魔術方法將不會被調(diào)用。所以這些方法都不能被聲明為static。
__set    在給不可訪問的屬性賦值時
  public void __set(string $name, mixed $value)
  作用:批量管理私有屬性,間接保護對象結(jié)構(gòu)
__get    讀取不可訪問的屬性的值時
  public mixed __get(string $name)
__isset    當對不可訪問的屬性調(diào)用isset()或empty()時
  public bool __isset(string $name)
__unset    當對不可訪問的屬性調(diào)用unset()時
  public void __unset(string $name)
# 方法重載
- 處理不可訪問的方法
__call      當調(diào)用一個不可訪問的非靜態(tài)方法(如未定義,或者不可見)時自動被調(diào)用
    public mixed __call(string $name, array $arguments)
__callStatic  當在調(diào)用一個不可訪問的靜態(tài)方法(如未定義,或者不可見)時自動被調(diào)用
    public static mixed __callStatic(string $name, array $arguments)
# $name參數(shù)是要調(diào)用的方法名稱。$arguments參數(shù)是一個數(shù)組,包含著要傳遞給方法的參數(shù)。

// 類型約束
函數(shù)的參數(shù)可以指定只能為對象或數(shù)組
限定為對象則在形參前加類名,限定為數(shù)組則在形參前加array
類型約束允許NULL值
類型約束不只是用在類的成員方法里,也能使用在函數(shù)里。 

// 三大特性
封裝:隱藏內(nèi)部是吸納,僅開發(fā)接口。
繼承:一個對象的成員被另一個對象所使用。語法上體現(xiàn)為代碼的共用。
多態(tài):多種形態(tài)。

// 類與對象·關鍵字
this    代表本對象
public    公有的(繼承鏈、本類、外部均可訪問)
protected  保護的(僅繼承鏈、本類可訪問)
private    私有的(僅本類可訪問)
parent::  代表父類
self::    代表本類(當前代碼所在類)
static::  代表本類(調(diào)用該方法的類)
static    靜態(tài)成員(屬性、方法),所有對象均可使用,外部也可直接使用或修改,靜態(tài)方法不可訪問非靜態(tài)成員
final    方法用final不可被子類重載,類用final不可被繼承(方法、類)
const    類常量(屬性)
abstract  抽象類
interface  接口
extends    類繼承(子接口繼承接口、其他普通類繼承)
implements  接口實現(xiàn)(類實現(xiàn)接口、抽象類實現(xiàn)借口)(對接口的實現(xiàn)和繼承均可有多個)
Iterator  內(nèi)置接口(迭代)
clone    克隆
instance  實例
instanceof  某對象是否屬于某類

/* 【類與對象相關函數(shù)】 */
class_alias([$original [,$alias]]) 給類取別名
class_exists($class [,$autoload])  檢查類是否已定義
interface_exists($interface [,$autoload])  檢查接口是否已被定義
method_exists($obj, $method)檢查類的方法是否存在
property_exists($class, $property) 檢查對象或類是否具有該屬性
get_declared_classes(void) 返回由已定義類的名字所組成的數(shù)組
get_declared_interfaces(void)  返回一個數(shù)組包含所有已聲明的接口
get_class([$obj])    返回對象的類名
get_parent_class([$obj])  返回對象或類的父類名
get_class_methods($class)  返回由類的方法名組成的數(shù)組
get_object_vars($obj)  返回由對象屬性組成的關聯(lián)數(shù)組
get_class_vars($class) 返回由類的默認屬性組成的數(shù)組
is_a($obj, $class) 如果對象屬于該類或該類是此對象的父類則返回TRUE
is_subclass_of($obj, $class)  如果此對象是該類的子類,則返回TRUE
get_object_vars($obj)  返回由對象屬性組成的關聯(lián)數(shù)組


// 常用類
# PHP手冊 -> 預定義類
Closure    閉包類,匿名函數(shù)對象的final類
stdClass  標準類,通常用于對象類保存集合數(shù)據(jù)
__PHP_Incomplete_Class    不完整類,當只有對象而沒有找到類時,則該對象被認為是該類的對象
Exception  異常類
PDO      數(shù)據(jù)對象類

// 魔術常量
__DIR__      文件所在的目錄
__LINE__    文件中的當前行號 
__FILE__    文件的完整路徑(絕對路徑)和文件名

__CLASS__    類的名稱
__METHOD__    類的方法名,包含類名和方法名
__FUNCTION__  函數(shù)名稱,用在方法內(nèi)只表示方法名

// 反射機制 Reflection
作用:1. 獲取結(jié)構(gòu)信息    2. 代理執(zhí)行
ReflectionClass 報告一個類的有關信息
ReflectionMethod 報告一個方法的有關信息
ReflectionClass::export  輸出類結(jié)構(gòu)報告
# 代理執(zhí)行
實例化 ReflectionFunction 類的對象
  $f = new ReflectionFunction('func');  // func為函數(shù)func($p)
  $f->invoke('param');


/* 頁面跳轉(zhuǎn) */
// PHP
header('Loacation: url')
header()執(zhí)行完畢后,后面的代碼也會繼續(xù)執(zhí)行,故需在該語句后加die結(jié)束
無法給出提示,直接跳轉(zhuǎn)
// JS方法
location.href = url
// HTML
<meta http-equiv="Refresh" content="表示時間的數(shù)值; url=要跳轉(zhuǎn)的URI"> 

/* 【Cookie】 */
cookie是一種在遠程瀏覽器端儲存數(shù)據(jù)并以此來跟蹤和識別用戶的機制。
cookie是HTTP標頭的一部分,因此setcookie()函數(shù)必須在其它信息被輸出到瀏覽器前調(diào)用,這和對header()函數(shù)的限制類似??梢允褂幂敵鼍彌_函數(shù)來延遲腳本的輸出,直到按需要設置好了所有的cookie或者其它HTTP標頭。

// 新增
setcookie  新增一條cookie信息
setcookie($name [,$value [,$expire [,$path [,$domain [,$secure [,$httponly]]]]]])
#注意:setcookie()函數(shù)前不能有輸出!除非開啟ob緩存!
# 參數(shù)說明
$name  - cookie的識別名稱
  使用$_COOKIE['name']抵用名為name的cookie
$value  - cookie值,可以為數(shù)值或字符串,此值保存在客戶端,不要用來保存敏感數(shù)據(jù)
  假定$name參數(shù)的值為'name',則$_COOKIE['name']就可取得該$value值
$expire  - cookie的生存期限(Unix時間戳,秒數(shù))
  如果$expire參數(shù)的值為time()+60*60*24*7則可設定cookie在一周后失效。如果未設定該參數(shù),則會話后立即失效。
$path  - cookie在服務器端的指定路徑。當設定該值時,服務器中只有指定路徑下的網(wǎng)頁或程序可以存取該cookie。
  如果該參數(shù)值為'/',則cookie在整個domain內(nèi)有效。
  如果設為'/foo/',則cookie就在domain下的/foo/目錄及其子目錄內(nèi)有效。
  默認值為設定cookie的當前目錄及其子目錄。
$domain  - 指定此cookie所屬服務器的網(wǎng)址名稱,預設是建立此cookie服務器的網(wǎng)址。
  要是cookie能在如abc.com域名下的所有子域都有效,則該參賽應設為'.abc.com'。
$secure  - 指明cookie是否僅通過安全的HTTPS連接傳送中的cookie的安全識別常數(shù),如果設定該值則代表只有在某種情況下才能在客戶端與服務端之間傳遞。
  當設成true時,cookie僅在安全的連接中被設置。默認值為false。

// 讀取
- 瀏覽器請求時會攜帶當前域名下的所有cookie信息到服務器。
- 任何從客戶端發(fā)送的cookie都會被自動存入$_COOKIE全局數(shù)組。
- 如果希望對一個cookie變量設置多個值,則需在cookie的名稱后加[]符號。即以數(shù)組形態(tài)保存多條數(shù)據(jù)到同一變量。
  //設置為$_COOKIE['user']['name'],注意user[name]的name沒有引號
  setcookie('user[name]', 'shocker');
- $_COOKIE也可以為索引數(shù)組

// 刪除
方法1:將其值設置為空字符串
  setcookie('user[name]', '');
方法2:將目標cookie設為“已過期”狀態(tài)。
  //將cookie的生存時間設置為過期,則生存期限與瀏覽器一樣,當瀏覽器關閉時就會被刪除。
  setcookie('usr[name]', '', time()-1);

# 注意:
1. cookie只能保存字符串數(shù)據(jù)
2. $_COOKIE只用于接收cookie數(shù)據(jù),不用于設置或管理cookie數(shù)據(jù)。
  對$_COOKIE進行操作不會影響cookie數(shù)據(jù)。
  $_COOKIE只會保存瀏覽器在請求時所攜帶的cookie數(shù)據(jù)。
3. cookie生命周期:
  臨時cookie:瀏覽器關閉時被刪除
  持久cookie:$expire參數(shù)為時間戳,表示失效時間。
4. 有效目錄
  cookie只在指定的目錄有效。默認是當前目錄及其子目錄。
  子目錄的cookie在其父目錄或同級目錄不可獲取。
5. cookie區(qū)分域名
  默認是當前域名及其子域名有效。
6. js中通過document.cookie獲得,類型為字符串
7. 瀏覽器對COOKIE總數(shù)沒有限制,但對每個域名的COOKIE數(shù)量和每個COOKIE的大小有限,而且不同瀏覽器的限制不同。

/* 【session】 */
1. 開啟session機制
  session_start()
  注意:session_start()函數(shù)前不能有輸出!除非開啟ob緩存。
2. 操作數(shù)據(jù)
  對$_SESSION數(shù)組進行操作
3. 瀏覽器端保存SessionID,默認為當前域名下的所有目錄及其子目錄生效。即默認設置cookie的path值為'/'
4. 服務器保存session數(shù)據(jù)
  默認保存方式:每個會話都會生成一個session數(shù)據(jù)文件,文件名為:sess_加SessionID
5. session可以存儲除了資源以外的任何類型數(shù)據(jù)。
  數(shù)據(jù)被序列化后再保存到文件中。
6. $_SESSION的元素下標不能為整型!
  因為只對元素值進行序列化。
  元素內(nèi)的數(shù)組下標無此要求。
7. 生存周期
  默認是瀏覽器關閉
    因為瀏覽器保存的cookie變量SessionID是臨時的
    但是服務器端的session數(shù)據(jù)文件不一定消失(需要等待session的垃圾回收機制來處理)
  可以延長cookie中PHPSESSID變量的生命周期。(不推薦)
  php.ini配置session.gc_maxlifetime
8. 刪除數(shù)據(jù)
  $_SESSION變量在腳本結(jié)束時依然會消失。開啟session機制時會造出$_SESSION變量。
  $_SESSION與保存session數(shù)據(jù)的文件是兩個空間。
  unset($_SESSION['key'])只是刪除數(shù)組內(nèi)的該元素,不會立即相應到保存session數(shù)據(jù)的文件上。
    等到腳本結(jié)束,才會將$_SESSION的數(shù)據(jù)寫入到該文件中。
  session_destroy()  銷毀保存session數(shù)據(jù)的文件,也不會對該文件寫入內(nèi)容。
    并不刪除$_SESSION變量,unset或腳本結(jié)束才會刪除該變量。
  如何完全刪除一個session?需刪除3部分
    unset($_SESSION);  
      刪除$_SESSION變量后,數(shù)據(jù)文件并未被改動。如果單獨使用unset,則需先置空$_SESSION = array()
    session_destroy();
    setcookie('PHPSESSID', '', time()-1); //保險做法是將其生命周期失效
  整個腳本周期內(nèi),只對數(shù)據(jù)文件讀一次、寫一次。

// 重寫session的存儲機制
# session存儲方式
session.save_handler = user|files|memcache
# 因數(shù)據(jù)文件過多導致的問題,可通過分子目錄保存進行解決
PHP配置文件下session.save_path選項,并需手動創(chuàng)建數(shù)據(jù)存放目錄。
在該配置選項前加層級。分布子目錄的原則,利用會話ID的相應字母來分配子目錄。仍需手動創(chuàng)建子目錄。
session.save_path = "2; F:/PHPJob/Temp"
# 多服務器數(shù)據(jù)共享問題
# 數(shù)據(jù)存儲操作:
  初始化$open、釋放資源$close、讀$read、寫$write、銷毀存儲介質(zhì)$destroy(調(diào)用session_destroy時觸發(fā)該操作)、垃圾回收$gc
# 會話ID的長度可變。不同的設置方式導致不同長度的會話ID。
session.hash_function  允許用戶指定生成會話ID的散列算法。
  '0' 表示MD5(128 位),'1' 表示SHA-1(160 位)。
session.hash_bits_per_character  允許用戶定義將二進制散列數(shù)據(jù)轉(zhuǎn)換為可讀的格式時每個字符存放多少個比特。
  可能值為 '4'(0-9,a-f),'5'(0-9,a-v),以及 '6'(0-9,a-z,A-Z,"-",",")。
  總hash長度為128bit,會話ID長度為128/可能值,4->32, 5->26, 6->22
# 自定義數(shù)據(jù)存儲操作方法
# 注意:不用關心PHP如何序列化、反序列化、如何得到數(shù)據(jù)和寫入數(shù)據(jù),只做與數(shù)據(jù)存儲相關的操作
session_set_save_handler  設置用戶自定義的會話數(shù)據(jù)存儲函數(shù)
  bool session_set_save_handler(callable $open, callable $close, callable $read, callable $write, callable $destroy, callable $gc)
執(zhí)行順序:open, close, read, write, destroy, gc
# 先設置處理器,再開啟會話

# 常用函數(shù)
session_start    開啟或恢復會話機制
session_id      獲取或設置當前會話ID
session_destroy    銷毀當前會話的所有數(shù)據(jù)(銷毀數(shù)據(jù)文件)
session_name    獲取或設置當前會話名稱(cookie變量名,默認為PHPSESSID)
session_save_path  獲取或設置當前會話數(shù)據(jù)文件保存路徑
session_set_save_handler  設置用戶自定義的會話數(shù)據(jù)存儲函數(shù)
session_unset    釋放所有會話變量(清空$_SESSION數(shù)組元素)
session_encode    將當前會話數(shù)據(jù)編碼為一個字符串
session_decode    將字符串解譯為會話數(shù)據(jù)
session_write_close  寫入會話數(shù)據(jù)并關閉會話
session_register_shutdown  關閉會話
session_set_cookie_params  設置會話cookie變量,必須在session_start()前使用。
  session_set_cookie_params(0,"/webapp/"); //設置session生存時間
session_get_cookie_params  獲取會話cookie變量。返回包含當前會話cookie信息的數(shù)組

# 配置php.ini
ini_set($varname, $newvalue);
  //該函數(shù)的配置只對當前腳本生效
  //并非所有php.ini設置均可用該函數(shù)設置
ini_get($varname)  //獲取某配置項信息
ini_get_all([str $extension])  //返回所有配置項信息的數(shù)組

# session擴展配置
session.name  指定會話名以用作cookie的名字。只能由字母數(shù)字組成,默認為PHPSESSID。
session.save_path  定義了傳遞給存儲處理器的參數(shù)。
  如果選擇了默認的files文件處理器,則此值是創(chuàng)建文件的路徑。默認為/tmp。
  可選的N參數(shù)來決定會話文件分布的目錄深度。
  要使用N參數(shù),必須在使用前先創(chuàng)建好這些目錄。在ext/session目錄下有個小的shell腳本名叫mod_files.sh可以用來做這件事。
  如果使用了N參數(shù)并且N大于0,那么將不會執(zhí)行自動垃圾回收。
session.save_handler  定義了來存儲和獲取與會話關聯(lián)的數(shù)據(jù)的處理器的名字。默認為files。
  如果用戶自定義存儲器,則該值改為user。
  ini_set('session.save_handler', 'user');//此設置只針對當前腳本生效。
session.auto_start 指定會話模塊是否在請求開始時自動啟動一個會話。默認為 0(不啟動)。
session.gc_probability與session.gc_divisor合起來定義了在每個會話初始化時啟動gc(garbage collection 垃圾回收)進程的概率。此概率用 gc_probability/gc_divisor 計算得來。例如 1/100 意味著在每個請求中有 1% 的概率啟動gc進程。session.gc_divisor默認為100。session.gc_probability默認為1。


/* 【圖片生成與處理】 */GD庫
// 畫布生成
# 新建畫布
imagecreate       新建一個基于調(diào)色板的圖像
  resource imagecreate(int $x_size, int $y_size)
imagecreatetruecolor  新建一個真彩色圖像
# 基于已有文件或URL創(chuàng)建畫布
imagecreatefromgd2   從GD2文件或URL新建一圖像
imagecreatefromgd2part 從給定的GD2文件或URL中的部分新建一圖像
imagecreatefromgd    從GD文件或URL新建一圖像
imagecreatefromgif   由文件或URL創(chuàng)建一個新圖象
imagecreatefromjpeg   由文件或URL創(chuàng)建一個新圖象
imagecreatefrompng   由文件或URL創(chuàng)建一個新圖象
imagecreatefromstring  從字符串中的圖像流新建一圖像
imagecreatefromwbmp   由文件或URL創(chuàng)建一個新圖象
imagecreatefromxbm   由文件或URL創(chuàng)建一個新圖象
imagecreatefromxpm   由文件或URL創(chuàng)建一個新圖象
// 顏色分配
imagecolorallocate     為一幅圖像分配顏色
  int imagecolorallocate(resource $image, int $red, int $green, int $blue)
imagecolorallocatealpha   為一幅圖像分配顏色 + alpha
imagecolordeallocate    取消圖像顏色的分配
imagecolortransparent    將某個顏色定義為透明色
imagecolorat      取得某像素的顏色索引值
imagecolorclosest    取得與指定的顏色最接近的顏色的索引值
imagecolorclosestalpha 取得與指定的顏色加透明度最接近的顏色
imagecolorclosesthwb  取得與給定顏色最接近的色度的黑白色的索引
imagecolorexact     取得指定顏色的索引值
imagecolorexactalpha  取得指定的顏色加透明度的索引值
imagecolormatch     使一個圖像中調(diào)色板版本的顏色與真彩色版本更能匹配
imagecolorresolve    取得指定顏色的索引值或有可能得到的最接近的替代值
imagecolorresolvealpha 取得指定顏色 + alpha 的索引值或有可能得到的最接近的替代值
imagecolorset      給指定調(diào)色板索引設定顏色
imagecolorsforindex   取得某索引的顏色
imagecolorstotal    取得一幅圖像的調(diào)色板中顏色的數(shù)目
// 區(qū)域填充
imagefill  區(qū)域填充
  bool imagefill(resource $image, int $x, int $y, int $color)
imagefilledarc     畫一橢圓弧且填充
imagefilledellipse   畫一橢圓并填充
imagefilledpolygon   畫一多邊形并填充
imagefilledrectangle  畫一矩形并填充
imagefilltoborder    區(qū)域填充到指定顏色的邊界為止
imagesettile  設定用于填充的貼圖
// 圖形創(chuàng)建
imagearc    畫橢圓弧
imagechar    水平地畫一個字符
imagecharup   垂直地畫一個字符
imagedashedline 畫一虛線
imageellipse  畫一個橢圓
imageline    畫一條線段
imagepolygon  畫一個多邊形
imagerectangle 畫一個矩形
imagesetpixel  畫一個單一像素
imagesx     取得圖像寬度
imagesy     取得圖像高度
// 畫筆設置
imagesetbrush  設定畫線用的畫筆圖像
imagesetstyle  設定畫線的風格
imagesetthickness  設定畫線的寬度
// 圖形拷貝
imagecopy      拷貝圖像的一部分
imagecopymerge   拷貝并合并圖像的一部分
imagecopymergegray 用灰度拷貝并合并圖像的一部分
imagecopyresampled 重采樣拷貝部分圖像并調(diào)整大小
imagecopyresized  拷貝部分圖像并調(diào)整大小
// 字符創(chuàng)建
imagestring     水平地畫一行字符串
imagestringup    垂直地畫一行字符串
imagepsslantfont  傾斜某字體
imagefontheight   取得字體高度
imagefontwidth   取得字體寬度
imagettfbbox    取得使用 TrueType 字體的文本的范圍
imageloadfont    載入一新字體
imagepsencodefont  改變字體中的字符編碼矢量
imagepsextendfont  擴充或精簡字體
// 導出畫布為圖片
imagegif  以GIF格式將圖像輸出到瀏覽器或文件
imagepng  以PNG格式將圖像輸出到瀏覽器或文件
imagejpeg  以JPEG格式將圖像輸出到瀏覽器或文件
imagewbmp  以WBMP格式將圖像輸出到瀏覽器或文件
通過header()發(fā)送 "Content-type: image/圖片格式" 可以使PHP腳本直接輸出圖像。
  header("Content-type: image/gif"); imagegif($im);
imagegd   將 GD 圖像輸出到瀏覽器或文件
imagegd2  將 GD2 圖像輸出到瀏覽器或文件
// 釋放畫布資源
imagedestroy  銷毀圖像
// 圖像信息
image_type_to_extension   取得圖像類型的文件后綴
getimagesize        取得圖像大小
imagesx           取得圖像寬度
imagesy           取得圖像高度
imageistruecolor      檢查圖像是否為真彩色圖像
imagetypes         返回當前 PHP 版本所支持的圖像類型
// 圖像設置
imagerotate     用給定角度旋轉(zhuǎn)圖像
imagealphablending 設定圖像的混色模式
imageantialias   是否使用抗鋸齒(antialias)功能
imagefilter     對圖像使用過濾器
imagegammacorrect  對 GD 圖像應用 gamma 修正
imageinterlace   激活或禁止隔行掃描

/* 【縮略圖】【水印】 */
imagecopyresampled 重采樣拷貝部分圖像并調(diào)整大小
  bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )
imagecopymerge   拷貝并合并圖像的一部分
  bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )
getimagesize    取得圖像大小
  array getimagesize ( string $filename [, array &$imageinfo ] )

/* 【URL函數(shù)】 */
get_headers — 取得服務器響應一個 HTTP 請求所發(fā)送的所有標頭
get_meta_tags — 從一個文件中提取所有的 meta 標簽 content 屬性,返回一個數(shù)組
http_build_query — 生成 URL-encode 之后的請求字符串
urldecode — 解碼已編碼的URL字符串
urlencode — 編碼URL字符串
parse_url — 解析URL,返回其組成部分
  'http://username:password@hostname/path?arg=value#anchor'
  scheme(如http), host, port, user, pass, path, query(在問號?之后), fragment(在散列符號#之后)


//編碼可用于交換多個變量
$a = '中國';
$b = '四川';
$a = urlencode($a);
$b = urlencode($b);
$a = $a.'&'.$b;
$b = explode('&', $a);
$a = urldecode($b[1]);
$b = urldecode($b[0]);
echo $a, $b;
//list()函數(shù)用于交換變量
list($a, $b) = array($b, $a);


/* 【文件、目錄】 */
dirname($path) 返回路徑中的目錄部分
basename($path [,$suffix]) 返回路徑中的文件名部分
pathinfo($path [,$options]) 返回文件路徑的信息(數(shù)組元素:dirname,basename,extension)
realpath($path) 返回規(guī)范化的絕對路徑名

copy($source, $dest)  拷貝文件
unlink($file)  刪除文件
rename($old, $new) 重命名或移動一個文件或目錄
mkdir($path [,$mode [,$recursive]]) 新建目錄
  $mode表示權限,默認0777
  $recursive表示可創(chuàng)建多級目錄,默認false
rmdir($dir)   刪除目錄(目錄必須為空,且具有權限)

file_exists($file) 檢查文件或目錄是否存在
is_file($file)   判斷文件是否存在且為正常的文件
is_dir($file)    判斷文件名是否存在且為目錄
is_readable($file) 判斷文件或目錄是否可讀
is_writable($file) 判斷文件或目錄是否可寫
is_executable($file)  判斷給定文件名是否可執(zhí)行
is_link($file)   判斷給定文件名是否為一個符號連接

tmpfile(void)  建立一個臨時文件
tempnam($dir, $prefix) 在指定目錄中建立一個具有唯一文件名的文件

file($file) 把整個文件讀入一個數(shù)組中
fopen($filename, $mode [,$use_include_path])
  $mode參數(shù):(加入'b'標記解決移植性)
    'r'   只讀方式打開,將文件指針指向文件頭。
    'r+'  讀寫方式打開,將文件指針指向文件頭。
    'w'   寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。
    'w+'  讀寫方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。
    'a'   寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。
    'a+'  讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。
    'x'   創(chuàng)建并以寫入方式打開,將文件指針指向文件頭。
    'x+'  創(chuàng)建并以讀寫方式打開,將文件指針指向文件頭。
fclose($handle) 關閉一個已打開的文件指針
fread($handle, $length) 讀取文件(可安全用于二進制文件)
fwrite($handle, $string [,$length]) 寫入文件(可安全用于二進制文件)
rewind($handle) 倒回文件指針的位置
ftell($handle) 返回文件指針讀/寫的位置
fseek($handle, $offset [,$whence]) 在文件指針中定位
feof($handle)  測試文件指針是否到了文件結(jié)束的位置
fgets  從文件指針中讀取一行
fgetss 從文件指針中讀取一行并過濾掉HTML標記
flock($handle, $opt) 輕便的咨詢文件鎖定
  $opt:LOCK_SH 取得共享鎖定(讀取的程序);LOCK_EX 取得獨占鎖定(寫入的程序);LOCK_UN 釋放鎖定(無論共享或獨占)


readfile($file) 讀入一個文件并寫入到輸出緩沖
fflush($handle) 將緩沖內(nèi)容輸出到文件

touch($file [,$time [,$atime]])  設定文件的訪問和修改時間
fileatime  取得文件的上次訪問時間
filectime  取得文件的inode修改時間
filegroup  取得文件的組
fileinode  取得文件的inode
filemtime  取得文件修改時間
fileowner  取得文件的所有者
fileperms  取得文件的權限
filesize  取得文件大小
filetype  取得文件類型


/* fileinfo */ 獲取/設置文件信息
#擴展Fileinfo,配置php.ini
#extension=php_fileinfo.dll
finfo_open([$opt]) //創(chuàng)建一個文件信息資源
finfo_file($finfo, $file [,$opt]) //獲取文件信息
finfo_set_flags($finfo, $opt) //設置文件信息項
finfo_close($finfo) //關閉文件信息資源

mime_content_type($file) //獲取文件的MIME類型

$opt參數(shù)選項:
FILEINFO_MIME_ENCODING 文件編碼類型
FILEINFO_MIME_TYPE 文件MIME類型


//目錄
chdir($dir)     改變當前目錄
chroot($dir)    將當前目錄改變?yōu)楫斍斑M程的根目錄
closedir($handle)  關閉目錄句柄
dir($dir)      返回一個目錄的實例對象
getcwd()      取得當前工作目錄
opendir($path)   打開目錄句柄
readdir($handle)  從目錄句柄中讀取條目
rewinddir($handle) 倒回目錄句柄
scandir($dir [,$order])   列出指定路徑中的文件和目錄
glob($pattern [,$flags])  尋找與模式匹配的文件路徑
  $flags:
    GLOB_MARK - 在每個返回的項目中加一個斜線 
    GLOB_NOSORT - 按照文件在目錄中出現(xiàn)的原始順序返回(不排序) 
    GLOB_NOCHECK - 如果沒有文件匹配則返回用于搜索的模式 
    GLOB_NOESCAPE - 反斜線不轉(zhuǎn)義元字符 
    GLOB_BRACE - 擴充 {a,b,c} 來匹配 'a','b' 或 'c' 
    GLOB_ONLYDIR - 僅返回與模式匹配的目錄項 
  查找多種后綴名文件:glob('*.{php,txt}', GLOB_BRACE);


/* 解壓縮 */
//新建ZipArchive對象
$zip = new ZipArchive;
//打開ZIP文件
$zip->open($file [,$flags]);
  $flags:
    ZIPARCHIVE::OVERWRITE 覆蓋(不存在會自動創(chuàng)建)
    ZIPARCHIVE::CREATE 添加(不存在會自動創(chuàng)建)
    ZIPARCHIVE::EXCL
    ZIPARCHIVE::CHECKCONS
//關閉正在處理的ZIP文件
//解壓縮ZIP文件
$zip->extractTo($dest, [$entries]);
  $dest:解壓到的文件夾,$entries:解壓的條目
//添加文件到ZIP文件
$zip->addFile($file, [$newname]);  
  $newname可以為"dir/file",這樣可以將文件添加到壓縮文件中的某個目錄下。其他函數(shù)也如此。
//添加文件到ZIP文件,而內(nèi)容來自字符串
$zip->addFromString($file, $str);
//添加空文件夾到ZIP文件
$zip->addEmptyDir($dir);
//通過索引刪除ZIP中的文件或文件夾
$zip->deleteIndex($index);
//通過名稱刪除ZIP中的文件或文件夾
$zip->deleteName($name);
//設置ZIP文件注釋
$zip->setArchiveComment($str);
//獲取ZIP文件注釋
$zip->getArchiveComment();
//通過索引獲取文件內(nèi)容
$zip->getFromIndex($index);
//通過名稱獲取文件內(nèi)容
$zip->getFromName($name);
//獲取索引文件的文件名稱
$zip->getNameIndex($index);
//通過索引重命名文件
$zip->renameIndex($index, $newname);
//通過名稱重命名文件
$zip->renameName($name, $newname);

//若將文件夾內(nèi)容打包成ZIP文件,需循環(huán)文件夾的所有目錄及文件
function addFileToZip($path, $zip) {
  //打開當前文件夾$path
  $handle = opendir($path);
  //循環(huán)讀取子文件夾及文件
  //為防止文件名本身可被轉(zhuǎn)換為false的情況(比如為"0"),則需用不全等!==
  while ($file = readdir($handle) !== false) {
    //過濾假文件夾
    if ($file != '.' && $file != '..') {
      //對于子文件夾則遞歸調(diào)用本函數(shù)
      if (is_dir($path . '/' . $file)) {
        addFileToZip($path.'/'.$file, $zip);
      } else {
        //將文件添加到ZIP對象
        $zip->addFile($path . '/' . $file);
      }
    }
  }
  //關閉文件夾$path
  closedir($path);
}
// ----- END 解壓縮 ----- //


/* 【文件上傳】 */
enctype="multipart/form-data"  //FORM標簽必須的屬性
$_FILES 上傳文件信息數(shù)組變量
error  上傳錯誤信息
 無錯誤
 文件大小超過php.ini配置
    1) upload_max_filesize 允許上傳的最大文件大小
    2) post_max_size 最大的POST數(shù)據(jù)大小
    3) memory_limit 每個腳本能夠使用的最大內(nèi)存數(shù)量(默認128MB)
 文件大小超過瀏覽器表單配置
    MAX_FILE_SIZE  表示表單數(shù)據(jù)最大文件大小,該元素需在文件上傳域之前。(默認2M)
    <input type="hidden" name="MAX_FILE_SIZE" value="102400">
 文件只有部分被上傳
 文件沒有被上傳
  6,7 臨時文件寫入時失敗
 找不到臨時文件
 文件寫入失敗
name  文件名
type  文件類型
tmp_name  上傳文件臨時路徑
size  文件大小
move_uploaded_file($path, $newpath);  //將上傳的文件移動到新位置
is_uploaded_file($file) //判斷是否為POST上傳的文件
//多文件上傳
<input type="file" name="updfile[]" /> //HTML中以數(shù)組提交
$_FILES['updfile']['tmp_name'][0]  //服務器端可訪問第一個文件的臨時路徑,其他屬性類似


//php.ini配置
file_uploads = On 是否允許HTTP上傳文件
upload_max_filesize 上傳文件大小限制,默認為2M
post_max_size  post方式表單數(shù)據(jù)總大小限制,默認為8M
upload_tmp_dir 上傳文件臨時目錄,默認是系統(tǒng)臨時目錄
  需設置上傳文件臨時目錄,給其最小權限
GET方式的最大傳輸量為2K


/* 【批量提交】 */
FORM表單中的name值可用名稱加中括號的形式,在$_POST獲取表單數(shù)據(jù)時,可多項提交形成數(shù)組。
比如多文件上傳file,復選框提交checkbox等。
<input type="checkbox" name="id[]" value="值1" />
<input type="checkbox" name="id[]" value="值2" />
$id = $_POST['id']; //則可獲得全部被選中的復選框值,形成索引數(shù)組
如果name值為:
<input type="checkbox" name="id[one]" value="值1" />
<input type="checkbox" name="id[two]" value="值2" />
$id = $_POST['id']; //則可獲取所有name為id[...]的值,形成管理數(shù)組


/* iconv */
//php.ini配置iconv
[iconv]
;iconv.input_encoding = ISO-8859-1
;iconv.output_encoding = ISO-8859-1
;iconv.internal_encoding = ISO-8859-1
iconv_set_encoding($type, $charset);
  $type:input_encoding,output_encoding,internal_encoding
iconv_get_encoding([$type = "all"])
  $type:all,input_encoding,output_encoding,internal_encoding



iconv($in_charset, $out_charset, $str) //將字符串轉(zhuǎn)換為目標編碼

指定編碼,可解決中文字符的統(tǒng)計、查詢、截取等!
iconv_strlen($str [,$charset]) //統(tǒng)計字符串的字符數(shù)
iconv_strpos($str, $needle, $offset [,$charset]) //查找子串首次出現(xiàn)的位置
iconv_strrpos($str, $needle [,$charset]) //查找子串最后一次出現(xiàn)的位置
iconv_substr($str, $offset [,$len [,$charset]]) //截取子串


/* 【字符串函數(shù)】*/
addslashes($str)  //使用反斜線轉(zhuǎn)移字符串
stripcslashes($str) //反引用一個使用addcslashes轉(zhuǎn)義的字符串
stripslashes($str) //反引用一個引用字符串
chr($ascii) //返回ASCII碼的字符
ord($char) //返回字符的ASCII碼
substr_count($haystack, $needle)  //計算子串出現(xiàn)的次數(shù)
count_chars($str [,$mode]) 統(tǒng)計每個字節(jié)值出現(xiàn)的次數(shù)
  //0 - 以所有的每個字節(jié)值作為鍵名,出現(xiàn)次數(shù)作為值的數(shù)組。 
  //1 - 與0相同,但只列出出現(xiàn)次數(shù)大于零的字節(jié)值。 
  //2 - 與0相同,但只列出出現(xiàn)次數(shù)等于零的字節(jié)值。 
  //3 - 返回由所有使用了的字節(jié)值組成的字符串。 
  //4 - 返回由所有未使用的字節(jié)值組成的字符串。 
crypt($str, [$salt])  //單向字符串散列
str_split($str [,$len]) //將字符串按長度分割為數(shù)組
explode($separ, $str)  //使用一個字符串分割另一個字符串
implode([$glue,] $arr) //將數(shù)組元素的值根據(jù)$glue連接成字符串
chunk_split($str [,$len [,$end]])  //將字符串分割成小塊
  $len:每段字符串的長度,$end:每段字符串末尾加的字符串(如"\r\n")
html_entity_decode($str [,$flags [,$encoding]]) //將HTML實體轉(zhuǎn)成字符信息
htmlentities($str [,$flags [,$encoding]])  //將字符信息轉(zhuǎn)成HTML實體
htmlspecialchars_decode($str)  //將特殊HTML實體轉(zhuǎn)成字符信息
htmlspecialchars($str [,$flags [,$encoding]])  //將字符信息轉(zhuǎn)成特殊HTML實體
lcfirst($str)  //將字符串首字母轉(zhuǎn)成小寫
ucfirst($str)  //將字符串首字母轉(zhuǎn)成大寫
ucwords($str)  //將字符串中每個單詞的首字母轉(zhuǎn)換為大寫
strtolower($str)  //將字符串轉(zhuǎn)化為小寫
strtoupper($str)  //將字符串轉(zhuǎn)化為大寫
trim($str [,$charlist]) //去除字符串首尾處的空白字符(或者其他字符)
ltrim($str [,$charlist])  //去除字符串首段的空白字符(或者其他字符)
rtrim($str [,$charlist])  //去除字符串末端的空白字符(或者其他字符)
md5_file($file) //計算指定文件的MD5散列值
md5($str)  //計算字符串的MD5散列值
money_format($format, $num) //將數(shù)字格式化為貨幣形式
number_format($num) //格式化數(shù)字
nl2br($str) //在字符串所有新行之前插入HTML換行標記<br />
parse_str($str, [$arr]) //解析字符串
print($str) //輸出字符串
printf   //輸出格式化字符串
sprintf($format [,$args...])  //格式化字符串
sha1_file  //計算文件的sha1散列值
sha1    //計算字符串的sha1散列值
similar_text($first, $second [,$percent])  //計算兩個字符串的相似度
  返回在兩個字符串中匹配字符的數(shù)目,$percent存儲相似度百分比
str_replace($search, $replace, $str [,$count [,$type]]) //子字符串替換
str_ireplace  //字符串替換(忽略大小寫)
str_pad($str, $len [,$pad [,$type]]) //使用另一個字符串填充字符串為指定長度
  $type:在何處填充。STR_PAD_RIGHT,STR_PAD_LEFT 或 STR_PAD_BOTH
str_repeat($str, $num) //重復一個字符串
str_shuffle($str)  //隨機打亂一個字符串
str_word_count($str [,$format [,$charlist]])  //返回字符串中單詞的使用情況
strcasecmp($str1, $str2)  //二進制安全比較字符串(不區(qū)分大小寫)
  如果str1小于str2,返回負數(shù);如果str1大于str2,返回正數(shù);二者相等則返回0。
strcmp($str1, $str2)  //二進制安全字符串比較
strcoll($str1, $str1)  //基于區(qū)域設置的字符串比較(區(qū)分大小寫,非二進制安全)
strcspn($str1, $str1 [,$start [,$len]])  //獲取不匹配遮罩的起始子字符串的長度
strip_tags($str)  //從字符串中去除HTML和PHP標記
strpos($haystack, $needle [,$offset])  //查找字符串首次出現(xiàn)的位置
stripos($haystack, $needle [,$offset])  //查找字符串首次出現(xiàn)的位置(不區(qū)分大小寫)
strripos($haystack, $needle [,$offset])  //計算指定字符串在目標字符串中最后一次出現(xiàn)的位置(不區(qū)分大小寫)
strrpos($haystack, $needle [,$offset])  //計算指定字符串在目標字符串中最后一次出現(xiàn)的位置
strlen($str)  //獲取字符串長度
strpbrk($haystack, $str)  //在字符串中查找一組字符的任何一個字符
strrev($str)  //反轉(zhuǎn)字符串
  join('', array_reverse(preg_split("http://u", $str))); //實現(xiàn)對UTF-8字符串的反轉(zhuǎn)
strspn$subject, $mask) //計算字符串中全部字符都存在于指定字符集合中的第一段子串的長度。
strstr($haystack, $needle)  //查找字符串的首次出現(xiàn)
stristr($haystack, $needle)  //查找字符串的首次出現(xiàn)(不區(qū)分大小寫)
strrchr($haystack, $needle) //查找指定字符在字符串中的最后一次出現(xiàn)
strtok($str, $token)  //標記分割字符串
substr_compare($main_str, $str, $offset [,$len) //二進制安全比較字符串(從偏移位置比較指定長度)
substr_replace$str, $replace, $start [,$len]  //替換字符串的子串
strtr($str, $from, $to) //轉(zhuǎn)換指定字符
substr($str, $start [,$len])  //返回字符串的子串
vfprintf$handle, $format, $args)  //將格式化字符串寫入流
vprintf($format, $args) //輸出格式化字符串
vsprintf($format, $args) //返回格式化字符串
wordwrap($str [,$width=75 [,$break='\n']]) //打斷字符串為指定數(shù)量的字串

crc32($str) //計算一個字符串的crc32多項式
  crc32算法[循環(huán)冗余校驗算法]
  生成str的32位循環(huán)冗余校驗碼多項式。將數(shù)據(jù)轉(zhuǎn)換成整數(shù)。

/* mbstring(多字節(jié)字符串) */
//需開啟mbstring擴展
mb_strimwidth($str, $start, $width [,$trim [,$encoding]])  //保留指定的子串(并補充)
mb_stripos($str, $needle [,$offset [,$encoding]])  //查找子串首次出現(xiàn)的位置(忽略大小寫)
mb_strpos($str, $needle [,$offset [,$encoding]])  //查找子串首次出現(xiàn)的位置
mb_strripos($str, $needle [,$offset [,$encoding]])  //查找子串最后一次出現(xiàn)的位置(忽略大小寫)
mb_strrpos($str, $needle [,$offset [,$encoding]])  //查找子串最后一次出現(xiàn)的位置
mb_strstr($str, $needle [,$before [,$encoding]])  //返回子串首次出現(xiàn)位置之后(前)的字符串
mb_stristr($str, $needle [,$before [,$encoding]])  //返回子串首次出現(xiàn)位置之后(前)的字符串(忽略大小寫)
mb_strrchr($str, $needle [,$before [,$encoding]])  //返回字符最后一次出現(xiàn)位置之后(前)的字符串
mb_strrichr($str, $needle [,$before [,$encoding]])  //返回字符最后一次出現(xiàn)位置之后(前)的字符串(忽略大小寫)

mb_strtoupper($str [,$encoding])  //轉(zhuǎn)換成大寫
mb_strtolower($str [,$encoding])  //轉(zhuǎn)換成小寫

mb_strlen($str [,$encoding])  //獲取字符串長度
mb_split($pattern, $str [,$limit]) //將字符串分割成數(shù)組
mb_substr($str, $start [,$len [,$encoding]])  //獲取字符串的子串
mb_strcut($str, $start [,$len [,$encoding]])  //獲取字符串的子串
mb_strwidth($str [,$encoding]) //獲取字符串的寬度
mb_substr_count($str, $needle [,$encoding]) //子串在字符串中出現(xiàn)的次數(shù)


/* PCRE函數(shù) */
preg_filter($pattern, $replace, $subject [,$limit [,&$count]]) 執(zhí)行一個正則表達式搜索和替換
preg_replace($pattern, $replace, $subject [,$limit [,&$count]]) 執(zhí)行一個正則表達式搜索和替換
preg_replace_callback($pattern, $callback, $subject [,$limit [,&$count]])  執(zhí)行一個正則表達式搜索并且使用一個回調(diào)進行替換
preg_grep($pattern, $input [,$flags])  返回匹配模式的數(shù)組條目
preg_match($pattern, $subject [,&$matches [,$flags [,$offset]]]) 執(zhí)行一個正則表達式匹配
preg_match_all($pattern, $subject [,&$matches [,$flags [,$offset]]]) 執(zhí)行一個全局正則表達式匹配
  $matches存放返回的結(jié)果
    $matches[0][n] (n>=0) 表示存放第n+1個匹配到的結(jié)果
    $matches[m][n] (m>=1, n>=0) 表示存放第n+1個匹配到結(jié)果的第m個表達式的內(nèi)容
preg_split($pattern, $subject [,$limit [,$flags]]) 通過一個正則表達式分隔字符串
  $limit表示限制分隔得到的子串最多只有l(wèi)imit個,-1表示不限制
  $flags參數(shù):
    PREG_SPLIT_NO_EMPTY:將返回分隔后的非空部分
    PREG_SPLIT_DELIM_CAPTURE:用于分隔的模式中的括號表達式將被捕獲并返回
    PREG_SPLIT_OFFSET_CAPTURE:對于每一個出現(xiàn)的匹配返回時將會附加字符串偏移量
preg_quote($str [,$delimiter]) 轉(zhuǎn)義正則表達式字符
preg_last_error()  返回最后一個PCRE正則執(zhí)行產(chǎn)生的錯誤代碼


/* Math函數(shù) */
base_convert($number, $frombase, $tobase)  //在任意進制之間轉(zhuǎn)換數(shù)字
ceil($float)  //向上取整
floor($float)  //向下取整
exp($float) //計算e的指數(shù)
hypot($x, $y)  //計算直角三角形的斜邊長
is_nan($val)  //判斷是否為合法數(shù)值
log($arg [,$base=e]) //自然對數(shù)
max($num1, $num2, ...) //找出最大值
  max($arr)  //找出數(shù)組中的最大值
min($num1, $num2, ...) //找出最小值
rand([$min], $max) //產(chǎn)生一個隨機整數(shù)
srand([$seed]) //播下隨機數(shù)發(fā)生器種子
mt_rand([$min], $max)  //生成更好的隨機數(shù)
mt_srand($seed)   //播下一個更好的隨機數(shù)發(fā)生器種子
pi()  //得到圓周率值
pow($base, $exp)  //指數(shù)表達式
sqrt($float)  //求平方根
deg2rad($float) //將角度轉(zhuǎn)換為弧度
rad2deg($float) //將弧度數(shù)轉(zhuǎn)換為相應的角度數(shù)
round($val [,$pre=0]) //對浮點數(shù)進行四舍五入
fmod($x, $y) //返回除法的浮點數(shù)余數(shù)



/* 【MySQL函數(shù)】 */
mysql_client_encoding([$link]) //返回字符集的名稱
mysql_set_charset($charset [,$link])  //設置客戶端字符集編碼
mysql_connect($host, $user, $pass) //打開一個到MySQL服務器的連接
mysql_create_db($db [,$link])  //新建一個MySQL數(shù)據(jù)庫
mysql_pconnect($host, $user, $pass) //打開一個到MySQL服務器的持久連接
mysql_ping([$link]) //Ping一個服務器連接,如果沒有連接則重新連接
mysql_close([$link])  //關閉MySQL連接

mysql_data_seek($result, $row) //移動內(nèi)部結(jié)果的指針
mysql_errno([$link])  //返回上一個MySQL操作中的錯誤信息的數(shù)字編碼
mysql_error([$link])  //返回上一個MySQL操作產(chǎn)生的文本錯誤信息
mysql_affected_rows([$link]) //取得前一次MySQL操作所影響的記錄行數(shù)
mysql_info([$link]) //取得最近一條查詢的信息
mysql_insert_id([$link])  //取得上一步INSERT操作產(chǎn)生的ID

mysql_query($sql [,$link]) //發(fā)送一條MySQL查詢
mysql_unbuffered_query($sql [,$link])  //向MySQL發(fā)送一條SQL查詢,并不獲取和緩存結(jié)果的行
mysql_db_query($db, $sql [,$link]) //發(fā)送一條MySQL查詢

mysql_escape_string($str)  //轉(zhuǎn)義一個字符串用于mysql_query
mysql_real_escape_string($str) //轉(zhuǎn)義SQL語句中使用的字符串中的特殊字符,并考慮到連接的當前字符集

mysql_fetch_array($result [,$type]) //從結(jié)果集中取得一行作為關聯(lián)數(shù)組,或數(shù)字數(shù)組,或二者兼有
mysql_fetch_assoc($result) //從結(jié)果集中取得一行作為關聯(lián)數(shù)組
mysql_fetch_object($result) //從結(jié)果集中取得一行作為對象
mysql_fetch_row($result)  //從結(jié)果集中取得一行作為枚舉數(shù)組
mysql_fetch_field($result) //從結(jié)果集中取得列信息并作為對象返回
mysql_num_fields($result)  //取得結(jié)果集中字段的數(shù)目
mysql_num_rows($result) //取得結(jié)果集中行的數(shù)目

mysql_fetch_lengths($result)  //取得結(jié)果集中每個輸出的長度
mysql_field_flags($result, $field_offset)  //從結(jié)果中取得和指定字段關聯(lián)的標志
mysql_field_len($result, $field_offset)  //返回指定字段的長度
mysql_field_name($result, $field_offset)  //取得結(jié)果中指定字段的字段名
mysql_field_seek($result, $field_offset)  //將結(jié)果集中的指針設定為制定的字段偏移量
mysql_field_table($result, $field_offset)  //取得指定字段所在的表名
mysql_field_type($result, $field_offset)  //取得結(jié)果集中指定字段的類型
mysql_free_result($result) //釋放結(jié)果內(nèi)存

mysql_list_dbs([$link]) //列出MySQL服務器中所有的數(shù)據(jù)庫
mysql_list_fields($db, $table [,$link]) //列出MySQL結(jié)果中的字段
mysql_list_processes([$link])  //列出MySQL進程
mysql_list_tables($db [,$link]) //列出MySQL數(shù)據(jù)庫中的表

mysql_result($result, $row [$field])  //取得結(jié)果數(shù)據(jù)
mysql_select_db($db [,$link])  //選擇MySQL數(shù)據(jù)庫
mysql_tablename($result, $i)  //取得表名
mysql_db_name($result, $row [,$field]) //取得mysql_list_dbs()調(diào)用所返回的數(shù)據(jù)庫名

mysql_stat([$link]) //取得當前系統(tǒng)狀態(tài)
mysql_thread_id([$link])  //返回當前線程的ID
mysql_get_client_info() //取得MySQL客戶端信息
mysql_get_host_info()  //取得MySQL主機信息
mysql_get_proto_info() //取得MySQL協(xié)議信息
mysql_get_server_info() //取得MySQL服務器信息


/* 【SQL注入】 */
特殊字符導致的問題:
  1. 轉(zhuǎn)義:mysql_real_escape_string()
    對外來數(shù)據(jù)(GPC: GET, POST, COOKIE)進行轉(zhuǎn)義
  2. 先查詢當前記錄行,再匹配用戶名

//魔術引號機制
自動為所有提交到服務器的數(shù)據(jù)增加特殊符號的轉(zhuǎn)義。
當打開時,所有的單引號,雙引號,反斜線和NULL字符都會被自動加上一個反斜線進行轉(zhuǎn)義。這和addslashes()作用完全相同。
php.ini配置:
  magic_quotes_gpc = Off
get_magic_quotes_gpc() 獲取當前魔術引號機制的配置信息

/* 【錯誤處理】 */
解析錯誤、運行錯誤
//標準錯誤:
  級別、信息、文件、行號
  trigger_error  觸發(fā)一個用戶自定義的error/warning/notice錯誤信息

//php.ini配置,ini_set()
error_reporting     設置報告哪些級別的錯誤
# 錯誤報告:顯示到頁面
  display_errors = On 是否顯示錯誤報告
# 錯誤日志:存放到文件
  log_errors = on   是否開啟錯誤日志
  error_log      發(fā)送錯誤信息到錯誤日志文件
- 錯誤報告和錯誤日志可同時啟用!

自定義錯誤處理器
set_error_handler — 注冊自定義錯誤處理器函數(shù)
- 自定義處理器函數(shù)包含4個參數(shù),分別是級別、信息、文件、行號
- 開啟自定義錯誤處理器,則系統(tǒng)內(nèi)置的錯誤報告和錯誤日志則不會執(zhí)行。
- 自定義錯誤處理器函數(shù)返回false,則自定義函數(shù)結(jié)束后系統(tǒng)內(nèi)置的會繼續(xù)執(zhí)行。
- 用戶定義的錯誤級別(E_USER_ERROR),可以被自定義的錯誤處理器所捕獲并繼續(xù)執(zhí)行。系統(tǒng)內(nèi)置的錯誤,則腳本會立即停止。
restore_error_handler — 恢復預定義錯誤處理器函數(shù)
error_get_last — 獲取最近的錯誤信息

//錯誤處理函數(shù)
debug_backtrace 產(chǎn)生一條回溯跟蹤
  返回數(shù)組,包含的鍵值:function, line, file, class, object, type, args
debug_print_backtrace 打印一條回溯

//錯誤常量
手冊>錯誤處理

#生產(chǎn)模式
關閉錯誤報告,記錄錯誤日志。
#開發(fā)模式
關閉錯誤日志,開啟錯誤報告。

//異常
面向?qū)ο笳Z法中的錯誤處理方式。
一個異常就是一個包含當前異常信息的對象。
預定義異常類Exception及其擴展類。
#拋出異常
觸發(fā)一個異常的錯誤
throw new UserException();
如果沒有被捕獲,則報告致命錯誤。
#監(jiān)視異常
try {代碼段}
#捕獲異常
catch (UserException $obj) {代碼段}
需要通過當前異常的類型匹配才可悲捕獲。
#異常處理器
用以處理未被捕獲的異常。
異常處理器函數(shù)與catch類似,參數(shù)也是含類型的對象。
set_exception_handler — 注冊異常處理器函數(shù)
restore_exception_handler — 恢復預定義的異常處理器函數(shù)


#自定義異常
用戶定義的異常類須繼承自Exception類。

//異常相關屬性
protected string $message 異常消息內(nèi)容
protected int $code 異常代碼
protected string $file 拋出異常的文件名
protected int $line 拋出異常在該文件中的行號
//異常相關方法
Exception::__construct — 異常構(gòu)造函數(shù)
Exception::getMessage — 獲取異常消息內(nèi)容
Exception::getPrevious — 返回異常鏈中的前一個異常
Exception::getCode — 獲取異常代碼
Exception::getFile — 獲取發(fā)生異常的程序文件名稱
Exception::getLine — 獲取發(fā)生異常的代碼在文件中的行號
Exception::getTrace — 獲取異常追蹤信息
Exception::getTraceAsString — 獲取字符串類型的異常追蹤信息
Exception::__toString — 將異常對象轉(zhuǎn)換為字符串
Exception::__clone — 異常克隆

/* 【數(shù)據(jù)庫抽象層】 */
PDO:PHP Data Objects
PHO抽象層默認被加載,但需加載相應數(shù)據(jù)庫的驅(qū)動。
PDO是OOP語法,提供三個類:
PDO:PDO自身
PDOStatement:PDO語句類,提供對語句的后續(xù)處理
PDOException:PDO異常類,提供對錯誤的異常處理

//連接數(shù)據(jù)庫
PDO::__construct(str $dsn [,str $username [,str $password [,arr $driver_options]]])
DSN:Data Source Name,數(shù)據(jù)源
$dsn = 'mysql:dbname=testdb;host=127.0.0.1;port=3306';
//執(zhí)行沒有返回結(jié)果的SQL語句
int PDO::exec(str $statement)  //返回影響的記錄數(shù)
//執(zhí)行有返回結(jié)果集的SQL語句
PDOStatement PDO::query (string $statement) //返回PDOStatement對象
//處理結(jié)果集(PDOStatement對象)
array PDOStatement::fetchAll([int $fetch_style [,mixed $fetch_argument [,array $ctor_args = array()]]])  //默認返回關聯(lián)+索引數(shù)組
mixed PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] ) //返回一行
string PDOStatement::fetchColumn ([ int $column_number = 0 ] ) //返回一列
//釋放資源
unset($pdo) 或 $pdo = null

//錯誤報告
靜默模式:silent mode,出現(xiàn)錯誤,不主動報告錯誤(默認)
array PDO::errorInfo(void)
警告模式:warning mode,出現(xiàn)錯誤,觸發(fā)一個警告級別的錯誤
異常錯誤:exception mode,出現(xiàn)錯誤,拋出異常
bool PDO::setAttribute(int $attribute, mixed $value)  //設置PDO類屬性值
PDO::setAttribute('PDO::ATTR_ERRMODE', 'PDO::ERRMODE_SILENT | PDO::ERRMODE_WARNING | PDO::ERRMODE_EXCEPTION')

//預處理式執(zhí)行SQL
可對數(shù)據(jù)自動轉(zhuǎn)義,可有效抵制SQL注入。
PDOStatement PDO::prepare(string $statement [,array $driver_options=array()])
bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] )
bool PDOStatement::execute ([ array $input_parameters ] )


/* 【AR模式】 */
表 -> 類
字段 -> 類屬性
數(shù)據(jù) -> 對象


/* Date/Time */
date($format [,$timestamp]) //格式化一個本地時間/日期,$timestamp默認為time()
  Y:4位數(shù)字完整表示的年份
  m:數(shù)字表示的月份,有前導零
  d:月份中的第幾天,有前導零的2位數(shù)字
  j:月份中的第幾天,沒有前導零
  H:小時,24小時格式,有前導零
  h:小時,12小時格式,有前導零
  i:有前導零的分鐘數(shù)
  s:秒數(shù),有前導零
  L:是否為閏年,如果是閏年為1,否則為0
  M:三個字母縮寫表示的月份,Jan到Dec
  W:年份中的第幾周,每周從星期一開始
  z:年份中的第幾天
  N:數(shù)字表示的星期中的第幾天
  w:星期中的第幾天,數(shù)字表示
  e:時區(qū)標識
  T:本機所在的時區(qū)
  U:從Unix紀元開始至今的秒數(shù)(時間戳)
time() //返回當前的Unix時間戳(秒)
microtime([$get_as_float]) //返回當前Unix時間戳和微秒數(shù)
  $get_as_float參數(shù)存在并且其值等價于TRUE,將返回一個浮點數(shù)
strtotime($time [,$now]) //將任何英文文本的日期時間描述解析為Unix時間戳
  date("Y-m-d H:i:s", strtotime("-1 day")); //格式化前一天的時間戳
  "now"
  "10 September 2000"
  "+1 week"
  "+1 week -2 days 4 hours 2 seconds"
  "last Monday"
  "next Thursday"
gmdate($format [,$timestamp]) //格式化一個GMT/UTC 日期/時間
mktime([$hour = date("H") [,$minute = date("i") [,$second = date("s") [,$month = date("n") [,$day = date("j") [,$year = date("Y") [,$is_dst = -1]]]]]]]) //取得一個日期的Unix時間戳
strftime($format [,$timestamp]) //根據(jù)區(qū)域設置格式化本地時間/日期
date_default_timezone_get($timezone) //獲取默認時區(qū)
date_default_timezone_set($timezone) //設置默認時區(qū)


/* DateTime */
//date()函數(shù)能處理有效時間戳范圍是格林威治時間 1901 年 12 月 13 日 20:45:54 到 2038 年 1 月 19 日 03:14:07(因為32位系統(tǒng)能最大正整數(shù)限制)
DateTime::__construct([$time="now"]) //構(gòu)造方法
  $time若是時間戳,則在時間戳前加@符號,如'@2345678'
DateTime::setTimezone($timezone) //設置時區(qū)
  eg: $date->setTimezone(new DateTimeZone('PRC'));
DateTime::format($format) //格式化時間戳,格式化字符串形式同date()函數(shù)


/* $_SERVER */
//示例URL:http://desktop/dir/demo.php?a=aaa&b=bbb
PHP_SELF 當前執(zhí)行腳本的文件名 // /dir/demo.php
GATEWAY_INTERFACE 服務器使用的CGI規(guī)范的版本 // CGI/1.1
SERVER_ADDR 當前運行腳本所在的服務器的IP地址 // 127.0.0.1
SERVER_NAME 當前運行腳本所在的服務器的主機名 // desktop
SERVER_SOFTWARE 服務器標識字符串 // Apache/2.2.22 (Win32) PHP/5.3.13
SERVER_PROTOCOL 請求頁面時通信協(xié)議的名稱和版本 // HTTP/1.1
REQUEST_METHOD 訪問頁面使用的請求方式 // GET
REQUEST_TIME 請求開始時的時間戳 // 1386032633
QUERY_STRING 查詢字符串(參數(shù)) // a=aaa&b=bbb
DOCUMENT_ROOT 當前運行腳本所在的文檔根目錄 // C:/Users/Administrator/Desktop
HTTP_ACCEPT 當前請求頭中Accept:項的內(nèi)容 // text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_CHARSET 當前請求頭中Accept-Charset:項的內(nèi)容 // UTF-8,*
HTTP_ACCEPT_ENCODING 當前請求頭中Accept-Encoding:項的內(nèi)容 // gzip, deflate
HTTP_ACCEPT_LANGUAGE 當前請求頭中Accept-Language:項的內(nèi)容 // zh-cn,zh;q=0.5
HTTP_CONNECTION 當前請求頭中Connection:項的內(nèi)容 // keep-alive
HTTP_HOST 當前請求頭中Host:項的內(nèi)容 // desktop
HTTP_REFERER 引導用戶代理到當前頁的前一頁的地址
HTTP_USER_AGENT 當前請求頭中User-Agent:項的內(nèi)容 // Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
HTTPS 如果腳本是通過HTTPS協(xié)議被訪問,則被設為一個非空的值
REMOTE_ADDR 瀏覽當前頁面的用戶的IP地址 // 127.0.0.1
REMOTE_HOST 瀏覽當前頁面的用戶的主機名
REMOTE_PORT 用戶機器上連接到Web服務器所使用的端口號 // 49197
REMOTE_USER 經(jīng)驗證的用戶
REDIRECT_REMOTE_USER 驗證的用戶,如果請求已在內(nèi)部重定向
SCRIPT_FILENAME 當前執(zhí)行腳本的絕對路徑 // C:/Users/Administrator/Desktop/dir/demo.php
SERVER_ADMIN 該值指明了Apache服務器配置文件中的SERVER_ADMIN參數(shù) //admin@shocker.com
SERVER_PORT Web服務器使用的端口 // 80
SERVER_SIGNATURE 包含了服務器版本和虛擬主機名的字符串
PATH_TRANSLATED 當前腳本所在文件系統(tǒng)(非文檔根目錄)的基本路徑
SCRIPT_NAME 當前腳本的路徑 // /dir/demo.php
REQUEST_URI URI用來指定要訪問的頁面 // /dir/demo.php?a=aaa&b=bbb
PHP_AUTH_DIGEST 客戶端發(fā)送的“Authorization” HTTP頭內(nèi)容
PHP_AUTH_PW 用戶輸入的密碼
AUTH_TYPE 認證的類型
PATH_INFO 包含由客戶端提供的、跟在真實腳本名稱之后并且在查詢語句(query string)之前的路徑信息
ORIG_PATH_INFO 在被PHP處理之前,“PATH_INFO”的原始版本




/* 緩存 */
1. ob緩存(輸出緩存)(需開啟)
  php.ini設置中開啟并設置輸出緩存大?。簅utput_buffering = 4096
  ob_start() 開啟當前腳本頁面的輸出緩存
  如果輸出緩存打開,則輸出的數(shù)據(jù)先放到輸出緩存(header函數(shù)前可以有輸出),否則直接放入程序緩存。
  header()函數(shù)發(fā)送的內(nèi)容直接放入程序緩存。
  開啟輸出緩存后,輸出緩存數(shù)據(jù)會刷新到程序緩存,然后有Apache封裝成http響應包返回給瀏覽器。
  輸出緩存:存放的數(shù)據(jù)是從開啟輸出緩存開始返回給瀏覽器的所有靜態(tài)頁面數(shù)據(jù)!
2. 程序緩存(內(nèi)部緩存,必須存在,不能關閉)
3. 瀏覽器緩存

/* ob緩存(輸出控制) */ Output Buffering
ob_start() //打開一個輸出緩沖區(qū),所有的輸出信息不再直接發(fā)送到瀏覽器,而是保存在輸出緩沖區(qū)里面。
  ob_start('ob_gzhandler'); //將gz編碼的數(shù)據(jù)發(fā)送到支持壓縮頁面的瀏覽器

ob_clean();      //刪除內(nèi)部緩沖區(qū)的內(nèi)容,不關閉緩沖區(qū)(不輸出)。
ob_end_clean();    //刪除內(nèi)部緩沖區(qū)的內(nèi)容,關閉緩沖區(qū)(不輸出)。
ob_get_clean();    //返回內(nèi)部緩沖區(qū)的內(nèi)容,關閉緩沖區(qū)。相當于執(zhí)行ob_get_contents()與ob_end_clean()
ob_flush();      //發(fā)送內(nèi)部緩沖區(qū)的內(nèi)容到瀏覽器,刪除緩沖區(qū)的內(nèi)容,不關閉緩沖區(qū)。
ob_end_flush();    //發(fā)送內(nèi)部緩沖區(qū)的內(nèi)容到瀏覽器,刪除緩沖區(qū)的內(nèi)容,關閉緩沖區(qū)。
ob_get_flush();    //返回內(nèi)部緩沖區(qū)的內(nèi)容,并關閉緩沖區(qū),再釋放緩沖區(qū)的內(nèi)容。相當于ob_end_flush()并返回緩沖區(qū)內(nèi)容。
flush();        //將當前為止程序的所有輸出發(fā)送到用戶的瀏覽器

ob_get_contents();   //返回緩沖區(qū)的內(nèi)容,不輸出。
ob_get_length();    //返回內(nèi)部緩沖區(qū)的長度,如果緩沖區(qū)未被激活,該函數(shù)返回FALSE。
ob_get_level();    //Return the nesting level of the output buffering mechanism.
ob_get_status();    //獲取ob狀態(tài)信息

ob_implicit_flush();  //打開或關閉絕對刷新,默認為關閉,打開后ob_implicit_flush(true),所謂絕對刷新,即當有輸出語句(e.g: echo)被執(zhí)行時,便把輸出直接發(fā)送到瀏覽器,而不再需要調(diào)用flush()或等到腳本結(jié)束時才輸出。

ob_gzhandler        //ob_start回調(diào)函數(shù),用gzip壓縮緩沖區(qū)的內(nèi)容。
ob_list_handlers      //List all output handlers in use
output_add_rewrite_var   //Add URL rewriter values
output_reset_rewrite_vars //Reset URL rewriter values

這些函數(shù)的行為受php_ini設置的影響:
output_buffering    //該值為ON時,將在所有腳本中使用輸出控制;若該值為一個數(shù)字,則代表緩沖區(qū)的最大字節(jié)限制,當緩存內(nèi)容達到該上限時將會自動向瀏覽器輸出當前的緩沖區(qū)里的內(nèi)容。
output_handler     //該選項可將腳本所有的輸出,重定向到一個函數(shù)。例如,將 output_handler 設置為 mb_output_handler() 時,字符的編碼將被修改為指定的編碼。設置的任何處理函數(shù),將自動的處理輸出緩沖。
implicit_flush     //作用同ob_implicit_flush,默認為Off。

//ob緩存作用
1)防止在瀏覽器有輸出之后再使用setcookie()、header()或session_start()等發(fā)送頭文件的函數(shù)造成的錯誤。其實這樣的用法少用為好,養(yǎng)成良好的代碼習慣。
2)捕捉對一些不可獲取的函數(shù)的輸出,比如phpinfo()會輸出一大堆的HTML,但是我們無法用一個變量例如$info=phpinfo();來捕捉,這時候ob就管用了。
3)對輸出的內(nèi)容進行處理,例如進行gzip壓縮,例如進行簡繁轉(zhuǎn)換,例如進行一些字符串替換。
4)生成靜態(tài)文件,其實就是捕捉整頁的輸出,然后存成文件。經(jīng)常在生成HTML,或者整頁緩存中使用。


/* 網(wǎng)站并發(fā) */
測試工具:apache/bin/ab.exe
用法:cmd{%apache-bin%}>ab.exe -n 執(zhí)行訪問次數(shù) -c 用戶并發(fā)數(shù)量 URL地址
MPM(多路處理模塊):perfork(預處理模式), worker(工作者模式), winnt(Win系統(tǒng))
MPM配置:httpd-mpm.conf
查看當前MPM模式:httpd –l  mpm_xxx.c中xxx表示當前模式類型
httpd.conf配置(開啟MPM):#Include conf/extra/httpd-mpm.conf
#參考配置
#配置文件:extra/httpd-mpm.conf
#mpm_winnt.c
<IfModule mpm_winnt_module>
  ThreadsPerChild   1000  #中型網(wǎng)站1500-5500合理
  MaxRequestsPerChild 0
</IfModule>
#mpm_prefork.c
<IfModule mpm_prefork_module>
  StartServers  5    #預先啟動
  MinSpareServers 5
  MaxSpareServers 10   #最大空閑進程
  ServerLimit   1500  #用于修改apache編程參數(shù)
  MaxClients   1000  #最大并發(fā)數(shù)
  MaxRequestsPerChild 0  #一個進程對應的線程數(shù),對worker更用
</IfModule>
#如果你的網(wǎng)站pv值上百萬
ServerLimit   2500  #用于修改apache編程參數(shù)
MaxClients   2000  #最大并發(fā)數(shù)


/* 靜態(tài)化 */
1. 頁面URL長度不超過255字節(jié)
2. meta信息盡量完整,keywords5個左右
3. 前端不要使用框架
4. 圖片alt屬性添加信息
5. 靜態(tài)頁面不要帶動態(tài)值

<script type="text/javascript" language="javascript" src="url"></script>
url可以是js/php/圖片等,返回的數(shù)據(jù)替換<script>標簽所在位置的內(nèi)容!相當于簡單的Ajax


/* Apache壓縮 */
gzip/deflate


/* XSS攻擊 */
#惡意JS代碼
#不規(guī)則HTML代碼

開源過濾器:htmlpurifier

//獲取COOKIE
<script>
var c = document.cookie; //獲取COOKIE
var script = document.createElement('script'); //創(chuàng)建script標簽
script.src = 'demo.php?c=' + c; //發(fā)送到指定的文件接收
document.body.appendChild(script); //添加到DOM對象中生效
</script>


/* 命令行CLI */
//顯示幫助信息
php -h
//解析并運行-f選項給定的文件名
php [-f] <file> [--] [args...]
//在命令行內(nèi)運行單行PHP代碼
php [options] -r <code> [--] [args...]
無需加上PHP的起始和結(jié)束標識符,否則將會導致語法解析錯誤
//調(diào)用phpinfo()函數(shù)并顯示出結(jié)果
php -i/--info
//檢查PHP語法
php -l/--syntax-check
//打印出內(nèi)置以及已加載的PHP及Zend模塊
php -m/--modules
//將PHP,PHP SAPI和Zend的版本信息寫入標準輸出
php -v/--version

//參數(shù)接收
$argv  傳遞給腳本的參數(shù)數(shù)組
  第一個參數(shù)總是當前腳本的文件名,因此$argv[0]就是腳本文件名
$argc  傳遞給腳本的參數(shù)數(shù)目
  腳本的文件名總是作為參數(shù)傳遞給當前腳本,因此$argc的最小值為1
包含當運行于命令行下時傳遞給當前腳本的參數(shù)的數(shù)組
此兩個變量僅在register_argc_argv打開時可用


/* 設計模式 */
單例模式:為一個類生成一個唯一的對象。使用單例模式生成一個對象后,該對象可以被其它眾多對象所使用。
工廠模式:封裝對象的建立過程??梢栽趯ο蟊旧韯?chuàng)建對象工廠或者是一個額外的工廠類
MVC模式:用戶->控制器->模型->控制器->視圖->控制器->用戶


/* 配置選項 */
set_time_limit($seconds) //設置腳本最大執(zhí)行時間(默認30秒),0表示不限制
ini_get($varname) //獲取一個配置選項的值
ini_set($varname, $newvalue) //為一個配置選項設置值
extension_loaded($ext_name) //檢測一個擴展是否已經(jīng)加載
get_extension_funcs($ext_name) //返回模塊函數(shù)名的數(shù)組


/* 【其他】 */
version_compare(str $ver1, str $ver2 [,str $operator]) //比較版本號
  $operator表示操作符,可選:<, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne
  如果省略$operator,返回兩個版本號的差值。
符號@  用于抑制系統(tǒng)運行錯誤的報告顯示
memory_get_usage  //獲取當期內(nèi)存使用情況
memory_get_peak_usage  //獲取內(nèi)存使用的峰值
getrusage  //獲取CPU使用情況(Windows不可用)
uniqid([$prefix])  //獲取一個帶前綴、基于當前時間微秒數(shù)的唯一ID
highlight_string($str [,$return])  //字符串的語法高亮
  $return:設置為TRUE,高亮后的代碼不會被打印輸出,而是以字符串的形式返回。高亮成功返回TRUE,否則返回FALSE。
highlight_file($file [,$return])  //語法高亮一個文件
__halt_compiler   //中斷編譯器的執(zhí)行
get_browser   //獲取瀏覽器具有的功能
  get_browser ([ string $user_agent [, bool $return_array = false ]] )
  如果設置為 TRUE,該函數(shù)會返回一個 array,而不是 object
eval($code) //把字符串作為PHP代碼執(zhí)行
gzcompress($str [,$level=-1])  //壓縮字符串
gzuncompress($str) //解壓縮字符串
gzencode($str [,$level=-1])  //壓縮字符串
gzdecode($str) //解壓縮字符串
ignore_user_abort($bool) //設置客戶端斷開連接時是否中斷腳本的執(zhí)行

希望本文所述對大家的PHP程序設計有所幫助。

相關文章

最新評論

啪啪啪18禁一区二区三区| 久青青草视频手机在线免费观看 | 久久综合老鸭窝色综合久久| 在线新三级黄伊人网| 漂亮 人妻被中出中文| 成年人中文字幕在线观看| yy96视频在线观看| 青青青青在线视频免费观看| 日韩欧美一级aa大片| 无码国产精品一区二区高潮久久4 日韩欧美一级精品在线观看 | 亚洲高清国产拍青青草原| 欧美黑人性暴力猛交喷水| 爆乳骚货内射骚货内射在线| 国产日韩精品一二三区久久久| 天美传媒mv视频在线观看| 人妻少妇中文有码精品| 日韩近亲视频在线观看| 午夜成午夜成年片在线观看| 欧美成人黄片一区二区三区| 韩国三级aaaaa高清视频| 精品久久久久久久久久中文蒉| 欧美麻豆av在线播放| 91啪国自产中文字幕在线| 精品黑人巨大在线一区| 一区二区久久成人网| 熟女人妻在线观看视频| 亚洲在线免费h观看网站| 欧美viboss性丰满| 日韩在线中文字幕色| 久久丁香婷婷六月天| 午夜毛片不卡免费观看视频| 欧美特色aaa大片| 日韩视频一区二区免费观看| 在线不卡日韩视频播放| 特黄老太婆aa毛毛片| 午夜美女少妇福利视频| 天天日天天摸天天爱| 亚洲欧美福利在线观看| 欧美在线精品一区二区三区视频 | 超碰97人人澡人人| jul—619中文字幕在线| 日本一二三区不卡无| 一区二区久久成人网| 在线观看的黄色免费网站| 视频一区 视频二区 视频| 欧亚乱色一区二区三区| 日韩亚国产欧美三级涩爱| 男人操女人逼逼视频网站| 东游记中文字幕版哪里可以看到| 欧美亚洲国产成人免费在线| 人妻丝袜精品中文字幕| 色伦色伦777国产精品| 成人av中文字幕一区| 亚洲最大免费在线观看| 亚洲中文精品字幕在线观看| 亚洲精品中文字幕下载| 精品成人啪啪18免费蜜臀| 天天干天天日天天干天天操| 亚洲精品无码久久久久不卡| 熟女少妇激情五十路| 成人免费毛片aaaa| 色伦色伦777国产精品| 一区二区三区麻豆福利视频| 97少妇精品在线观看| 国产欧美精品免费观看视频| 日本xx片在线观看| 国产老熟女伦老熟妇ⅹ| 亚洲精品 欧美日韩| 高清一区二区欧美系列 | 日辽宁老肥女在线观看视频| 亚洲国产香蕉视频在线播放| 欧美综合婷婷欧美综合| 精品成人啪啪18免费蜜臀| 人人妻人人爽人人添夜| 老熟妇凹凸淫老妇女av在线观看| 91人妻精品一区二区在线看| 人妻丝袜诱惑我操她视频| 91亚洲手机在线视频播放| 亚洲一区二区三区偷拍女厕91| av一区二区三区人妻| 久精品人妻一区二区三区| 中文字幕人妻三级在线观看| 精品一区二区三区午夜| 中文字幕亚洲久久久| 91精品啪在线免费| 午夜久久香蕉电影网| 一区二区三区四区中文| 国产精品久久久久网| av天堂加勒比在线| 天天干天天啪天天舔| 91在线视频在线精品3| 在线免费观看欧美小视频| 免费av岛国天堂网站| 亚洲va欧美va人人爽3p| 综合国产成人在线观看| 综合页自拍视频在线播放| 国产又粗又硬又猛的毛片视频 | 欧美80老妇人性视频| 日本少妇人妻xxxxxhd| 国产精品成久久久久三级蜜臀av| 绯色av蜜臀vs少妇| 亚洲人妻视频在线网| 成人乱码一区二区三区av| 超级av免费观看一区二区三区| 亚洲激情唯美亚洲激情图片| 免费啪啪啪在线观看视频| 午夜久久久久久久精品熟女| 99热这里只有国产精品6| 中文字幕第三十八页久久| 一区二区在线视频中文字幕| 亚洲va天堂va国产va久| 亚洲国产欧美一区二区丝袜黑人| 国产成人一区二区三区电影网站| 国产精品中文av在线播放 | 天天日天天干天天舔天天射| 人妻少妇亚洲精品中文字幕| 亚洲自拍偷拍综合色| 国产精品国产三级国产精东| 美女张开两腿让男人桶av| 精品国产午夜视频一区二区| 天堂中文字幕翔田av| 久草视频在线看免费| 人妻少妇一区二区三区蜜桃| 自拍偷拍日韩欧美亚洲| 亚洲中文字字幕乱码| 国产欧美精品一区二区高清| 国产又大又黄免费观看| 综合国产成人在线观看| 亚洲偷自拍高清视频| av无限看熟女人妻另类av| 视频 国产 精品 熟女 | 亚洲丝袜老师诱惑在线观看| nagger可以指黑人吗| 国产在线自在拍91国语自产精品| 欧洲黄页网免费观看| 绝色少妇高潮3在线观看| 成人av久久精品一区二区| 亚洲av色香蕉一区二区三区| 国产不卡av在线免费| 国产女人被做到高潮免费视频| 亚洲国产精品美女在线观看| 淫秽激情视频免费观看| 日本女人一级免费片| 2022国产综合在线干| 888欧美视频在线| 亚洲国产欧美国产综合在线| 99热色原网这里只有精品| 午夜精品在线视频一区| 成熟熟女国产精品一区| 一区二区三区四区中文| 欧美一区二区中文字幕电影| 伊人综合免费在线视频| 欧美va不卡视频在线观看| 亚洲一区二区人妻av| 亚洲 色图 偷拍 欧美| 91试看福利一分钟| 激情啪啪啪啪一区二区三区| 天天干狠狠干天天操| 午夜91一区二区三区| av俺也去在线播放| 天天插天天狠天天操| 黑人借宿ntr人妻的沦陷2| 男人和女人激情视频| 国产女孩喷水在线观看| 最新欧美一二三视频| 小泽玛利亚视频在线观看| 777奇米久久精品一区| av中文字幕在线导航| 天天躁日日躁狠狠躁av麻豆| 边摸边做超爽毛片18禁色戒 | 国产亚洲欧美另类在线观看| 日韩近亲视频在线观看| 日本熟妇丰满厨房55| 无码日韩人妻精品久久| 国产白袜脚足J棉袜在线观看| av中文字幕国产在线观看| 亚洲国产精品久久久久久6| 日韩精品啪啪视频一道免费| 护士特殊服务久久久久久久| 久久精品在线观看一区二区| 天天日天天做天天日天天做| 高清一区二区欧美系列| 亚洲丝袜老师诱惑在线观看| 一区二区视频在线观看免费观看| 日日摸夜夜添夜夜添毛片性色av| 中文字幕人妻熟女在线电影| 亚洲欧洲av天堂综合| 免费手机黄页网址大全| 亚洲欧美激情人妻偷拍| 2020韩国午夜女主播在线| 中文字幕乱码人妻电影| 91精品国产高清自在线看香蕉网| 人妻凌辱欧美丰满熟妇| 蜜桃视频17c在线一区二区| 久久久久久久亚洲午夜综合福利| 97国产在线观看高清| 日本精品美女在线观看| 婷婷综合亚洲爱久久| 蝴蝶伊人久久中文娱乐网| 日本高清撒尿pissing| 男人操女人的逼免费视频| 中国黄色av一级片| 中文字幕中文字幕 亚洲国产| 99一区二区在线观看| 久久久久久97三级| 91国内精品自线在拍白富美| 97色视频在线观看| 青娱乐极品视频青青草| 福利视频网久久91| 在线免费视频 自拍| 免费岛国喷水视频在线观看| 91成人精品亚洲国产| 精品黑人巨大在线一区| 中文字幕AV在线免费看 | 中文字幕乱码人妻电影| 亚洲午夜伦理视频在线| 国产又色又刺激在线视频 | 一区二区视频在线观看免费观看| 在线观看欧美黄片一区二区三区 | 日本xx片在线观看| 国产激情av网站在线观看| av无限看熟女人妻另类av| 亚洲国产成人最新资源| 亚洲熟妇无码一区二区三区| 在线观看免费视频网| 精品国产亚洲av一淫| 国产不卡av在线免费| 亚洲欧美国产综合777| 精品国产污污免费网站入口自| 唐人色亚洲av嫩草| 亚洲av色图18p| 中文字幕在线观看极品视频| av大全在线播放免费| 亚洲av无码成人精品区辽| 国产黑丝高跟鞋视频在线播放| 日韩一区二区电国产精品| 色花堂在线av中文字幕九九| 黑人进入丰满少妇视频| 88成人免费av网站| 国产精品大陆在线2019不卡| 欧美亚洲牲夜夜综合久久| 天天射夜夜操狠狠干| 99re久久这里都是精品视频| av在线资源中文字幕| 亚洲色偷偷综合亚洲AV伊人| 99久久99久国产黄毛片| 日韩写真福利视频在线观看| 超黄超污网站在线观看| 97人妻人人澡爽人人精品| 岛国黄色大片在线观看 | 亚洲男人的天堂a在线| 521精品视频在线观看| 国产午夜福利av导航| 欧美黄色录像免费看的| 成人影片高清在线观看| 日日摸夜夜添夜夜添毛片性色av| 一个色综合男人天堂| 日本熟妇一区二区x x| 亚洲av成人免费网站| 国产熟妇乱妇熟色T区| av天堂中文字幕最新| 成人免费毛片aaaa| 日本男女操逼视频免费看| 特一级特级黄色网片| 午夜国产免费福利av| 亚洲另类综合一区小说| 手机看片福利盒子日韩在线播放| 久久久久久99国产精品| 日本午夜福利免费视频| 果冻传媒av一区二区三区| 熟女人妻在线中出观看完整版| 在线免费观看视频一二区| 中文字幕在线免费第一页| 香蕉av影视在线观看| 欧美一级视频一区二区| 成年人啪啪视频在线观看| 午夜激情久久不卡一区二区 | 成人高潮aa毛片免费| 女警官打开双腿沦为性奴| 97资源人妻免费在线视频| 国内资源最丰富的网站| 亚洲av一妻不如妾| av完全免费在线观看av| 偷拍自拍 中文字幕| 激情五月婷婷免费视频| 五月婷婷在线观看视频免费 | 色花堂在线av中文字幕九九 | 国产真实灌醉下药美女av福利| 老司机午夜精品视频资源| 粉嫩av懂色av蜜臀av| 视频在线免费观看你懂得| 91人妻精品一区二区在线看| 男人天堂av天天操| 另类av十亚洲av| 国产之丝袜脚在线一区二区三区| 久久这里有免费精品| 国产剧情演绎系列丝袜高跟| 国产精品久久久久国产三级试频| 欧美成人精品在线观看| 91精品高清一区二区三区| 亚洲精品av在线观看| 一区二区三区四区五区性感视频| 亚洲成人黄色一区二区三区| 无码中文字幕波多野不卡| 久草极品美女视频在线观看| 中文字幕1卡1区2区3区| 国产精彩对白一区二区三区| 久久精品亚洲成在人线a| 天天干天天爱天天色| 日本人妻少妇18—xx| 综合一区二区三区蜜臀| 顶级尤物粉嫩小尤物网站| free性日本少妇| okirakuhuhu在线观看| 亚洲欧美久久久久久久久| 性感美女高潮视频久久久| 亚洲精品中文字幕下载| 中文字幕一区二区人妻电影冢本| 3337p日本欧洲大胆色噜噜| 色秀欧美视频第一页| 国产精品成人xxxx| 特级欧美插插插插插bbbbb| 久草电影免费在线观看| 2021最新热播中文字幕| 五十路在线观看完整版| 91啪国自产中文字幕在线| 女生自摸在线观看一区二区三区| 中文字幕高清免费在线人妻| 青青青青青青青青青青草青青| 人妻凌辱欧美丰满熟妇| 日韩中文字幕精品淫| 年轻的人妻被夫上司侵犯| 亚洲一区二区三区精品视频在线| 中文字幕视频一区二区在线观看| 韩国爱爱视频中文字幕| 99精品国自产在线人| 欧美精产国品一二三产品价格| 青草亚洲视频在线观看| 美女张开腿让男生操在线看| av网站色偷偷婷婷网男人的天堂| 国产精品视频欧美一区二区 | 水蜜桃一区二区三区在线观看视频| 国产精品午夜国产小视频| 视频 一区二区在线观看| 98精产国品一二三产区区别| 天天干天天操天天扣| 影音先锋女人av噜噜色| 2018在线福利视频| 欧美地区一二三专区| 玩弄人妻熟妇性色av少妇| 把腿张开让我插进去视频 | 91色九色porny| 清纯美女在线观看国产| 在线视频自拍第三页| 夏目彩春在线中文字幕| 天天日天天干天天要| 亚洲第17页国产精品| 午夜免费体验区在线观看| 日本一道二三区视频久久| 国产精品女邻居小骚货| 黄色片黄色片wyaa| 岛国免费大片在线观看| 在线观看黄色成年人网站| 天天日天天干天天舔天天射| 夏目彩春在线中文字幕| 1区2区3区不卡视频| 99的爱精品免费视频| 天天干天天操天天玩天天射 | 亚洲一区制服丝袜美腿| 亚洲午夜高清在线观看| 亚洲午夜福利中文乱码字幕| 夏目彩春在线中文字幕| 香蕉av影视在线观看| 男生用鸡操女生视频动漫| 青青青青青操视频在线观看| 在线免费观看视频一二区| 国产又色又刺激在线视频| 免费一级黄色av网站| 99精品视频在线观看免费播放| 免费男阳茎伸入女阳道视频| 日日夜夜大香蕉伊人| 亚洲av天堂在线播放| 国产片免费观看在线观看| 久久午夜夜伦痒痒想咳嗽P| aaa久久久久久久久| 毛片一级完整版免费| 成人高清在线观看视频| 日本人妻欲求不满中文字幕| av视网站在线观看| 亚洲免费国产在线日韩| 韩国一级特黄大片做受| 青青青青视频在线播放| 婷婷色国产黑丝少妇勾搭AV | caoporn蜜桃视频| 一级黄色片夫妻性生活| 国产无遮挡裸体免费直播视频| 在线免费观看欧美小视频| 日本丰满熟妇BBXBBXHD| 中文字幕+中文字幕| 福利在线视频网址导航| 国产免费av一区二区凹凸四季| 天天操夜夜操天天操天天操| 久碰精品少妇中文字幕av| 日韩北条麻妃一区在线| 夜夜操,天天操,狠狠操| 五月天中文字幕内射| 国产在线免费观看成人| 黑人性生活视频免费看| 免费国产性生活视频| 国产精品视频一区在线播放| 精品人人人妻人人玩日产欧| 亚洲欧美激情中文字幕| 中文字幕av第1页中文字幕| 日本熟妇喷水xxx| 国产 在线 免费 精品| 日韩av有码中文字幕| 色综合久久久久久久久中文| 91香蕉成人app下载| 精品美女久久久久久| 日韩欧美国产精品91| 国产一级麻豆精品免费| 国产成人精品久久二区91| 国产精品一区二区三区蜜臀av | 成人av电影免费版| 久草福利电影在线观看| 91在线视频在线精品3| 亚洲av第国产精品| 青青草精品在线视频观看| 欧美精品中文字幕久久二区| 最近中文字幕国产在线| 欧美女同性恋免费a| 97成人免费在线观看网站| 精品久久久久久久久久久99| 天天操天天污天天射| 日韩av免费观看一区| 91免费观看在线网站| 国产精品伦理片一区二区| 日韩欧美一级黄片亚洲| 青青操免费日综合视频观看| 黄色视频成年人免费观看| 风流唐伯虎电视剧在线观看| 91大屁股国产一区二区| 夜夜嗨av蜜臀av| 热思思国产99re| 嫩草aⅴ一区二区三区| 老司机福利精品免费视频一区二区 | 久久精品在线观看一区二区| 国产精品人妻66p| 亚洲人妻av毛片在线| 中文字幕av一区在线观看| 日韩少妇人妻精品无码专区| 91大屁股国产一区二区| 日韩av熟妇在线观看| 国产精品欧美日韩区二区| 亚洲人妻30pwc| 国产熟妇乱妇熟色T区| 色吉吉影音天天干天天操| 色哟哟在线网站入口| www日韩毛片av| 亚洲一区自拍高清免费视频| 日韩视频一区二区免费观看| 久久久久久久久久性潮| 丝袜肉丝一区二区三区四区在线 | 日本韩国亚洲综合日韩欧美国产 | 中文字幕在线一区精品| 日韩近亲视频在线观看| 女蜜桃臀紧身瑜伽裤| 青青擦在线视频国产在线| 78色精品一区二区三区| 熟女人妻在线观看视频| 黑人巨大的吊bdsm| 亚洲国产欧美国产综合在线| 亚洲av日韩高清hd| 亚洲av日韩高清hd| 亚洲人一区二区中文字幕| 日本一二三中文字幕| 91中文字幕免费在线观看| 日韩欧美国产一区ab| 99久久99一区二区三区| 在线免费观看av日韩| 视频在线亚洲一区二区| 三级av中文字幕在线观看| 天天干天天插天天谢| 一区二区三区 自拍偷拍| 蜜桃视频17c在线一区二区| 青青伊人一精品视频| 99久久中文字幕一本人| 欧美黑人性猛交xxxxⅹooo| 久草极品美女视频在线观看| 国产卡一卡二卡三乱码手机| 亚洲精品亚洲人成在线导航| 999久久久久999| 欧美一区二区三区啪啪同性| 一个人免费在线观看ww视频| 99av国产精品欲麻豆| 亚洲欧美成人综合在线观看| 精品人人人妻人人玩日产欧| 2012中文字幕在线高清| 91麻豆精品久久久久| 操人妻嗷嗷叫视频一区二区| 欧美80老妇人性视频| 水蜜桃一区二区三区在线观看视频| 久久这里有免费精品| 啪啪啪啪啪啪啪免费视频| 日韩伦理短片在线观看| 孕妇奶水仑乱A级毛片免费看| 日本一本午夜在线播放| 韩国一级特黄大片做受| 男人天堂最新地址av| 色综合天天综合网国产成人| 国产一级精品综合av| 成人色综合中文字幕| 中文字幕在线观看国产片| 亚洲av日韩精品久久久久久hd| 97超碰人人搞人人| 国产+亚洲+欧美+另类| 国产成人精品一区在线观看| 亚洲国产美女一区二区三区软件 | 亚洲天堂成人在线观看视频网站| 亚洲一区久久免费视频| 亚洲精品国品乱码久久久久 | 精品国产乱码一区二区三区乱| 66久久久久久久久久久| 欧美日韩一级黄片免费观看| 任我爽精品视频在线播放| 中文字幕日韩精品就在这里| 边摸边做超爽毛片18禁色戒| 亚洲熟色妇av日韩熟色妇在线| 国产91久久精品一区二区字幕| 福利午夜视频在线合集| 国产精品入口麻豆啊啊啊| 亚洲欧美激情国产综合久久久| 亚洲一区自拍高清免费视频| 成人亚洲精品国产精品| 91精品国产综合久久久蜜| 欧美老妇精品另类不卡片| 欧美亚洲免费视频观看| 北条麻妃肉色丝袜视频| 高清成人av一区三区| 久久久久久久精品老熟妇| 99久久99久国产黄毛片| 水蜜桃国产一区二区三区| 日韩欧美国产一区不卡| 91精品国产高清自在线看香蕉网 | 亚洲av男人的天堂你懂的| 午夜精品福利一区二区三区p| 青青青国产免费视频| 婷婷综合亚洲爱久久| 国产精品久久久久久美女校花| 2025年人妻中文字幕乱码在线| 播放日本一区二区三区电影| 国产av欧美精品高潮网站| 在线观看免费av网址大全| 中文字幕欧美日韩射射一| 漂亮 人妻被中出中文| 久久一区二区三区人妻欧美| 狠狠躁夜夜躁人人爽天天久天啪| 97瑟瑟超碰在线香蕉| 欧美一级片免费在线成人观看 | av久久精品北条麻妃av观看| 97人妻总资源视频| 91‖亚洲‖国产熟女| 搡老妇人老女人老熟女| 亚洲欧美日韩视频免费观看| 久草视频首页在线观看| 91免费放福利在线观看| 日本韩国免费一区二区三区视频| 亚洲国产美女一区二区三区软件| 2020国产在线不卡视频| 国产露脸对白在线观看| 馒头大胆亚洲一区二区| 人人爽亚洲av人人爽av| 狍和女人的王色毛片| 欧美久久久久久三级网| 午夜精品福利一区二区三区p| 首之国产AV医生和护士小芳| 一区二区三区欧美日韩高清播放| 高清一区二区欧美系列| ka0ri在线视频| 日韩欧美在线观看不卡一区二区 | 少妇深喉口爆吞精韩国| 欧美区一区二区三视频| 天堂女人av一区二区| 国产精品一区二区三区蜜臀av| 91久久综合男人天堂| 日韩北条麻妃一区在线| 中文字幕免费在线免费| 91精品免费久久久久久| 日本午夜爽爽爽爽爽视频在线观看| 亚洲va国产va欧美va在线| eeuss鲁片一区二区三区| 青青青aaaa免费| 中文字幕人妻三级在线观看| 污污小视频91在线观看| 在线观看免费岛国av| 欧美韩国日本国产亚洲| 欧美黑人性暴力猛交喷水| 国产av国片精品一区二区| 91亚洲精品干熟女蜜桃频道| 天天躁日日躁狠狠躁躁欧美av| av中文字幕电影在线看| tube69日本少妇| 中文字幕 码 在线视频| 自拍偷拍日韩欧美一区二区| 中文字幕在线观看国产片| 中文字幕日韩精品就在这里| 4个黑人操素人视频网站精品91| 欧洲欧美日韩国产在线| 瑟瑟视频在线观看免费视频| 亚洲欧美久久久久久久久| 天天摸天天日天天操| 北条麻妃高跟丝袜啪啪| 青青青青草手机在线视频免费看| 亚洲一级美女啪啪啪| 色婷婷久久久久swag精品| 国产综合高清在线观看| 国产揄拍高清国内精品对白| 精品国产亚洲av一淫| 最近中文字幕国产在线| 国产精品亚洲а∨天堂免| 国产日韩精品电影7777| 在线观看免费视频色97| 国产成人精品福利短视频| 色婷婷综合激情五月免费观看| 国产亚洲视频在线二区| 91国产在线免费播放| 国产免费av一区二区凹凸四季| 国产在线自在拍91国语自产精品| 亚洲一区二区三区uij| 色吉吉影音天天干天天操 | 在线视频自拍第三页| 沙月文乃人妻侵犯中文字幕在线| 精品高潮呻吟久久av| 亚洲成人av一区在线| 日韩av有码中文字幕| 亚洲精品国产综合久久久久久久久 | 亚洲自拍偷拍综合色| 亚洲一区二区三区久久受| 班长撕开乳罩揉我胸好爽| 午夜婷婷在线观看视频| 日韩美在线观看视频黄| 91久久综合男人天堂| 日韩不卡中文在线视频网站| 男人和女人激情视频| 年轻的人妻被夫上司侵犯| av老司机亚洲一区二区| 自拍偷拍亚洲精品第2页| 91九色porny国产蝌蚪视频| jiujiure精品视频在线| 在线亚洲天堂色播av电影| 日本午夜福利免费视频| 香蕉av影视在线观看| 亚洲国产美女一区二区三区软件| 日韩精品激情在线观看| 91精品国产观看免费| 日本男女操逼视频免费看| 色花堂在线av中文字幕九九| 伊人情人综合成人久久网小说| 天天干天天操天天扣| 久久久久久久久久久免费女人| 好了av中文字幕在线| 日韩在线中文字幕色| 国产aⅴ一线在线观看| 在线观看成人国产电影| 亚洲超碰97人人做人人爱| 久久精品视频一区二区三区四区| 内射久久久久综合网| 天天干天天爱天天色| 六月婷婷激情一区二区三区| 亚洲国产欧美国产综合在线| 国产精品黄页网站视频| 一区二区三区四区视频在线播放| 人妻3p真实偷拍一二区| 亚洲国产成人无码麻豆艾秋| 又色又爽又黄的美女裸体| 青青青青在线视频免费观看| 欧美老妇精品另类不卡片| 少妇高潮一区二区三区| 青青青国产免费视频| 99精品视频之69精品视频 | 嫩草aⅴ一区二区三区| 18禁网站一区二区三区四区| 欧美成人综合色在线噜噜| 欧美一区二区三区久久久aaa| 中文字幕在线观看极品视频| 国产黑丝高跟鞋视频在线播放| 国产91精品拍在线观看| 99精品国产aⅴ在线观看| 日韩近亲视频在线观看| 日韩人妻xxxxx| 青草亚洲视频在线观看| 亚洲特黄aaaa片| 午夜国产免费福利av| 成人av天堂丝袜在线观看| av破解版在线观看| 哥哥姐姐综合激情小说| 五月激情婷婷久久综合网| 一区二区三区四区视频在线播放| 国产午夜男女爽爽爽爽爽视频 | 成人av电影免费版| 88成人免费av网站| av黄色成人在线观看| av俺也去在线播放| 亚洲天堂精品福利成人av| 一个人免费在线观看ww视频| 亚欧在线视频你懂的| 色花堂在线av中文字幕九九 | AV天堂一区二区免费试看| 欧美中国日韩久久精品| 一区二区三区日本伦理| 99热99re在线播放| 动漫美女的小穴视频| 韩国三级aaaaa高清视频| 91精品国产综合久久久蜜| 91桃色成人网络在线观看| 欧美性受xx黑人性猛交| 国产视频在线视频播放| 中国视频一区二区三区| 2022天天干天天操| 一级黄片大鸡巴插入美女| 自拍偷区二区三区麻豆| 91九色porny国产在线| 福利在线视频网址导航| 亚洲最大黄 嗯色 操 啊| 天堂资源网av中文字幕| 亚洲 中文字幕在线 日韩| 91国产在线免费播放| 天天做天天干天天操天天射| 亚洲少妇人妻无码精品| 91香蕉成人app下载| av俺也去在线播放| 少妇人妻真实精品视频| 爱爱免费在线观看视频| 国产成人自拍视频播放| 免费观看丰满少妇做受| 亚洲狠狠婷婷综合久久app| 福利视频一区二区三区筱慧 | 曰本无码人妻丰满熟妇啪啪| 激情小视频国产在线| 91大屁股国产一区二区| 亚洲伊人色一综合网| 亚洲午夜电影在线观看| okirakuhuhu在线观看| 天天躁夜夜躁日日躁a麻豆| 在线观看av观看av| 亚洲欧美福利在线观看| 天天色天天操天天舔| 日本性感美女视频网站| 精品人妻伦一二三区久| av亚洲中文天堂字幕网| 综合页自拍视频在线播放| 成人福利视频免费在线| 91色秘乱一区二区三区| 曰本无码人妻丰满熟妇啪啪| 色综合天天综合网国产成人| 93精品视频在线观看| 国产精品污污污久久| 伊人网中文字幕在线视频| 最新国产亚洲精品中文在线| 亚洲一级av无码一级久久精品| 国产丰满熟女成人视频| 日噜噜噜夜夜噜噜噜天天噜噜噜| AV天堂一区二区免费试看| 91精品国产高清自在线看香蕉网 | 日韩美av高清在线| 国产精品人久久久久久| 91免费观看在线网站| 黄片大全在线观看观看| 自拍偷拍亚洲另类色图| 五十路丰满人妻熟妇| 啊用力插好舒服视频| 午夜青青草原网在线观看| 日韩欧美一级aa大片| 国产精品日韩欧美一区二区| 91www一区二区三区| 黄色片年轻人在线观看| 91国产在线免费播放| 97精品成人一区二区三区| 天天操天天干天天插| 999九九久久久精品| 在线新三级黄伊人网| 欧亚乱色一区二区三区| 在线观看黄色成年人网站| 亚洲一区二区三区精品视频在线| 99精品国产自在现线观看| 亚洲一级av大片免费观看| 夜鲁夜鲁狠鲁天天在线| av在线免费观看亚洲天堂| 国产女人被做到高潮免费视频| 青青社区2国产视频| 婷婷午夜国产精品久久久| 午夜激情高清在线观看| free性日本少妇| 午夜大尺度无码福利视频| 亚洲综合在线视频可播放| 日本三极片视频网站观看| 日韩欧美国产一区ab| 亚洲综合在线视频可播放| 5528327男人天堂| 国产实拍勾搭女技师av在线| 午夜美女福利小视频| 亚洲综合在线视频可播放| 夏目彩春在线中文字幕| 中文字幕第1页av一天堂网| 2022中文字幕在线| 蜜臀av久久久久久久| 97精品综合久久在线| 久草免费人妻视频在线| 亚洲综合乱码一区二区| 亚洲午夜高清在线观看| 黄色中文字幕在线播放| 亚洲欧美一区二区三区电影| 人人爱人人妻人人澡39| 国产午夜男女爽爽爽爽爽视频| 青青青青草手机在线视频免费看| 91免费福利网91麻豆国产精品| 91香蕉成人app下载| 又粗又长 明星操逼小视频| 精品乱子伦一区二区三区免费播| 97色视频在线观看| 一区二区在线视频中文字幕 | nagger可以指黑人吗| 制丝袜业一区二区三区| 日韩近亲视频在线观看| 亚洲国产欧美一区二区丝袜黑人 | 亚洲精品乱码久久久本| 91快播视频在线观看| 天天操天天干天天插| 美女 午夜 在线视频| 亚洲免费国产在线日韩| 大香蕉伊人国产在线| 亚洲欧美激情国产综合久久久| 中文字幕奴隷色的舞台50| 青青草精品在线视频观看| 人人在线视频一区二区| 日日夜夜精品一二三| av中文在线天堂精品| 久草视频在线免播放| 我想看操逼黄色大片| av天堂中文字幕最新| 中文字幕成人日韩欧美| 99热国产精品666| 天天色天天舔天天射天天爽| 成人伊人精品色xxxx视频| 国产视频精品资源网站| 婷婷久久久久深爱网| 亚洲欧美激情国产综合久久久| 岛国毛片视频免费在线观看| 天天躁日日躁狠狠躁躁欧美av| 熟女在线视频一区二区三区| 亚洲公开视频在线观看| 欧美第一页在线免费观看视频| 亚洲另类综合一区小说| 日韩在线中文字幕色| 自拍偷拍,中文字幕| 成人网18免费视频版国产| 清纯美女在线观看国产| 国产chinesehd精品麻豆| 激情人妻校园春色亚洲欧美| 一区二区三区四区视频在线播放| 亚洲国产精品中文字幕网站| 黄色成人在线中文字幕| 适合午夜一个人看的视频| 国产一区二区在线欧美| 亚洲中文字幕人妻一区| 日本精品美女在线观看| 亚洲av日韩高清hd| 91色秘乱一区二区三区| 欧美一区二区三区在线资源 | 97人人模人人爽人人喊| 中文字幕1卡1区2区3区| 亚洲成人熟妇一区二区三区| 中英文字幕av一区| 日韩熟女系列一区二区三区| 成人影片高清在线观看| 好男人视频在线免费观看网站| 人妻熟女在线一区二区| 欧美美女人体视频一区| 亚洲综合乱码一区二区| 日本少妇精品免费视频| 桃色视频在线观看一区二区| 国产免费av一区二区凹凸四季| 日本免费一级黄色录像| 91www一区二区三区| 天天操天天操天天碰| 精品久久久久久久久久中文蒉| 欧美黑人性猛交xxxxⅹooo| 亚洲av一妻不如妾| 午夜毛片不卡在线看| 五十路熟女av天堂| 亚洲变态另类色图天堂网| 播放日本一区二区三区电影 | 精产国品久久一二三产区区别| 在线免费观看视频一二区| 天天躁日日躁狠狠躁躁欧美av| 91国产在线免费播放| 黑人巨大的吊bdsm| 少妇高潮无套内谢麻豆| 亚洲丝袜老师诱惑在线观看| 中文字幕一区二 区二三区四区| 在线观看成人国产电影| 亚洲一区二区三区uij| 大香蕉伊人国产在线| 日韩北条麻妃一区在线| 狠狠地躁夜夜躁日日躁| 午夜福利资源综合激情午夜福利资| 毛片av在线免费看| 日本午夜爽爽爽爽爽视频在线观看| 国产黄网站在线观看播放| 青青草精品在线视频观看| 欧美韩国日本国产亚洲| 岛国免费大片在线观看| 亚洲 欧美 精品 激情 偷拍 | 99国产精品窥熟女精品| 国产伊人免费在线播放| 男人在床上插女人视频| 亚洲成人国产综合一区| 97人妻人人澡爽人人精品| 欧美精品欧美极品欧美视频| 日本免费午夜视频网站| 日本脱亚入欧是指什么| 人妻无码中文字幕专区| huangse网站在线观看| 大鸡吧插入女阴道黄色片| 久久丁香花五月天色婷婷| heyzo蜜桃熟女人妻| www骚国产精品视频| 99久久久无码国产精品性出奶水| www久久久久久久久久久| 超碰中文字幕免费观看| 亚洲精品无码久久久久不卡| 久久久精品国产亚洲AV一| 97精品成人一区二区三区| 中文字幕av第1页中文字幕| www骚国产精品视频| 午夜成午夜成年片在线观看| 人人超碰国字幕观看97| 男人的天堂av日韩亚洲| 天天综合天天综合天天网| 欧美日韩国产一区二区三区三州| 国语对白xxxx乱大交| 99精品国产免费久久| 老有所依在线观看完整版| 亚洲一级 片内射视正片| 久久久精品999精品日本| 亚洲一区二区三区精品乱码| 高清成人av一区三区| 亚洲欧美清纯唯美另类| 91国内精品久久久久精品一| 一区二区三区激情在线| 免费69视频在线看| 日韩一区二区电国产精品| 亚洲无码一区在线影院| 40道精品招牌菜特色| 中国无遮挡白丝袜二区精品| 国产九色91在线视频| 男人在床上插女人视频| 午夜福利人人妻人人澡人人爽| 不卡精品视频在线观看| 天天干天天操天天摸天天射| 一区二区三区视频,福利一区二区| 国产精品福利小视频a| 国产污污污污网站在线| 成人蜜臀午夜久久一区| 精品美女在线观看视频在线观看| 搡老熟女一区二区在线观看| heyzo蜜桃熟女人妻| 午夜在线观看岛国av,com| 亚洲精品一线二线在线观看| 国产欧美日韩在线观看不卡| 激情五月婷婷免费视频| av欧美网站在线观看| 黄色片一级美女黄色片| 免费在线福利小视频| 99的爱精品免费视频| 中文字幕人妻av在线观看| 亚洲国产成人无码麻豆艾秋| 国产高清女主播在线| 黄色中文字幕在线播放| 久久免看30视频口爆视频| 国产av自拍偷拍盛宴| 久久久久久99国产精品| 夜夜躁狠狠躁日日躁麻豆内射 | 77久久久久国产精产品| 69精品视频一区二区在线观看| 北条麻妃高跟丝袜啪啪| 国产成人精品一区在线观看| 日韩中文字幕福利av| 大香蕉大香蕉在线看| 福利国产视频在线观看| brazzers欧熟精品系列| 亚洲精品国品乱码久久久久| 在线播放 日韩 av| 97国产在线av精品| 亚洲国产香蕉视频在线播放 | 人妻少妇亚洲精品中文字幕| 1769国产精品视频免费观看| 亚洲av男人天堂久久| 2020久久躁狠狠躁夜夜躁| 一区二区三区四区视频在线播放 | 亚洲综合在线视频可播放| 欧美精品亚洲精品日韩在线| 大香蕉大香蕉在线有码 av| 午夜婷婷在线观看视频| 77久久久久国产精产品| 国产一区av澳门在线观看| 100%美女蜜桃视频| 欧美80老妇人性视频| 日本性感美女三级视频| 国产精品黄片免费在线观看| 2022精品久久久久久中文字幕| 亚洲 欧美 自拍 偷拍 在线| 国产露脸对白在线观看| 一区二区三区日韩久久| 93人妻人人揉人人澡人人| 青青社区2国产视频| 久草视频在线一区二区三区资源站| 自拍偷拍亚洲另类色图| 非洲黑人一级特黄片| 免费69视频在线看| 快点插进来操我逼啊视频| 欧美偷拍亚洲一区二区| 97人妻色免费视频| 极品丝袜一区二区三区| 99久久久无码国产精品性出奶水| chinese国产盗摄一区二区| 91国产在线视频免费观看| 人妻激情图片视频小说| 亚洲av自拍偷拍综合| 熟女俱乐部一二三区| 日韩精品二区一区久久| 中国无遮挡白丝袜二区精品| 日本少妇人妻xxxxxhd| 人妻自拍视频中国大陆| 77久久久久国产精产品| 天美传媒mv视频在线观看| 欧美日韩亚洲国产无线码| 狍和女人的王色毛片| 一区二区三区久久久91| 亚洲综合乱码一区二区| 成年人啪啪视频在线观看| 天天日天天干天天插舔舔| 亚洲精品ww久久久久久| 欧美日韩一区二区电影在线观看| 伊人综合aⅴ在线网| 看一级特黄a大片日本片黑人| 久久热这里这里只有精品| AV天堂一区二区免费试看| 又色又爽又黄又刺激av网站 | 少妇高潮无套内谢麻豆| 特一级特级黄色网片| 免费看高清av的网站| 亚洲国产美女一区二区三区软件 | 免费男阳茎伸入女阳道视频| 亚洲欧美综合在线探花| 国产精品成人xxxx| 社区自拍揄拍尻屁你懂的| 天码人妻一区二区三区在线看| 亚洲国产精品久久久久蜜桃| 日韩亚洲高清在线观看| 亚洲国产欧美国产综合在线| 黄色录像鸡巴插进去| 一区二区在线视频中文字幕| 深夜男人福利在线观看| 久久精品久久精品亚洲人| 日韩剧情片电影在线收看| 91老师蜜桃臀大屁股| 天天日天天干天天要| 国产欧美日韩第三页| 色天天天天射天天舔| 动漫黑丝美女的鸡巴| 天天干天天插天天谢| 欧美精品黑人性xxxx| 激情国产小视频在线| 欧美日韩情色在线观看| 91试看福利一分钟| 人妻3p真实偷拍一二区| 又粗又硬又猛又爽又黄的| 成人精品视频99第一页| 精品av国产一区二区三区四区 | 无码中文字幕波多野不卡| 亚洲欧美成人综合视频| 男生用鸡操女生视频动漫| 国产精品视频男人的天堂| 热思思国产99re| 欧亚乱色一区二区三区| 国产va精品免费观看 | 国产+亚洲+欧美+另类| 日本少妇高清视频xxxxx| 午夜毛片不卡在线看| 久久www免费人成一看片| 亚洲精品无码色午夜福利理论片| 硬鸡巴动态操女人逼视频| 午夜精品福利一区二区三区p| 国产大鸡巴大鸡巴操小骚逼小骚逼| 女同性ⅹxx女同h偷拍| 日本美女性生活一级片| 在线不卡成人黄色精品| 夜夜操,天天操,狠狠操| 免费观看国产综合视频| 中文字幕av一区在线观看| 狠狠躁夜夜躁人人爽天天久天啪| 日韩欧美高清免费在线| 欧美国品一二三产区区别| 黄色三级网站免费下载| 超碰97人人澡人人| 欧美特级特黄a大片免费| 成人区人妻精品一区二视频| 欧美第一页在线免费观看视频| 欧美xxx成人在线| 天天通天天透天天插| 中文字幕人妻一区二区视频 | 天天做天天干天天操天天射| 在线观看成人国产电影| 2021国产一区二区| 91精品免费久久久久久| 在线 中文字幕 一区| 免费看美女脱光衣服的视频| 9色精品视频在线观看| 清纯美女在线观看国产| 久久久精品999精品日本| 黄工厂精品视频在线观看| 18禁美女黄网站色大片下载| 国内自拍第一页在线观看| 曰本无码人妻丰满熟妇啪啪| 天天干天天日天天干天天操| 在线免费视频 自拍| 在线免费观看靠比视频的网站| 国产福利小视频二区| 91国偷自产一区二区三区精品| 在线免费观看日本片| 亚洲欧洲一区二区在线观看| 中文字幕乱码av资源| 伊人成人综合开心网| 一区二区三区激情在线| 久久久久久国产精品| 91she九色精品国产| 伊拉克及约旦宣布关闭领空| 91 亚洲视频在线观看| 第一福利视频在线观看| 久久人人做人人妻人人玩精品vr| 91久久人澡人人添人人爽乱| jiuse91九色视频| 亚洲熟妇久久无码精品| 天天通天天透天天插| tube69日本少妇| 男人天堂av天天操| 日韩欧美制服诱惑一区在线| 91福利视频免费在线观看| 午夜精品亚洲精品五月色| av日韩在线观看大全| 日韩欧美在线观看不卡一区二区 | 日本少妇人妻xxxxxhd| 日日夜夜狠狠干视频| 91av中文视频在线| 粉嫩av懂色av蜜臀av| 99精品视频之69精品视频| 福利国产视频在线观看| 十八禁在线观看地址免费| 日韩欧美一级精品在线观看| 久草福利电影在线观看| 大鸡八强奸视频在线观看| 人妻爱爱 中文字幕| 精品日产卡一卡二卡国色天香 | 激情国产小视频在线| 在线观看一区二区三级| 日韩欧美在线观看不卡一区二区 | av线天堂在线观看| 色花堂在线av中文字幕九九 | 免费岛国喷水视频在线观看| 亚洲免费视频欧洲免费视频 | 亚洲天天干 夜夜操| 漂亮 人妻被中出中文| 亚洲免费成人a v| 黑人大几巴狂插日本少妇| 狠狠的往里顶撞h百合| 日本高清撒尿pissing| 一区二区麻豆传媒黄片| 成年美女黄网站18禁久久| gay gay男男瑟瑟在线网站| 午夜激情高清在线观看| 精品欧美一区二区vr在线观看| 亚洲卡1卡2卡三卡四老狼| 亚洲欧美人精品高清| 91免费观看在线网站| 4个黑人操素人视频网站精品91| 人妻激情图片视频小说| 青青青青青免费视频| 中文字幕日韩人妻在线三区| av新中文天堂在线网址| 国产九色91在线观看精品| 成年女人免费播放视频| 超污视频在线观看污污污| 中文亚洲欧美日韩无线码| 少妇人妻真实精品视频| 蜜桃视频17c在线一区二区| 日本xx片在线观看| 亚洲一区二区三区在线高清| 又黄又刺激的午夜小视频| 超级av免费观看一区二区三区| av中文在线天堂精品| 一级黄色片夫妻性生活| 国产精品熟女久久久久浪潮| 在线免费观看日本片| 亚洲国产欧美国产综合在线| 肏插流水妹子在线乐播下载| 久久久人妻一区二区| 最新国产精品拍在线观看| 青青青视频自偷自拍38碰| 国产亚洲国产av网站在线| 在线不卡成人黄色精品| 女生自摸在线观看一区二区三区| 97年大学生大白天操逼| 午夜精品九一唐人麻豆嫩草成人| 在线观看911精品国产| 午夜的视频在线观看| 国产午夜男女爽爽爽爽爽视频 | 久久h视频在线观看| 中文字幕1卡1区2区3区| 国产综合视频在线看片| 精品一区二区三区欧美| 最后99天全集在线观看| 亚洲一区二区三区五区| 亚洲 欧美 精品 激情 偷拍| 蜜桃视频在线欧美一区| 欧美日韩国产一区二区三区三州| 中文字幕无码日韩专区免费| 抽查舔水白紧大视频| 成人国产影院在线观看| 97香蕉碰碰人妻国产樱花| 欧美成人综合视频一区二区| 欧美老鸡巴日小嫩逼| 国产日本精品久久久久久久| 亚洲av日韩精品久久久久久hd| 日本高清在线不卡一区二区| 国产在线自在拍91国语自产精品| 美女福利写真在线观看视频| 亚洲 自拍 色综合图| 亚洲高清国产拍青青草原| 人人妻人人爽人人添夜| 98视频精品在线观看| 亚洲国产精品中文字幕网站| 天天操天天弄天天射| 国产亚洲精品视频合集| 免费无毒热热热热热热久| 最新激情中文字幕视频| 亚洲成人午夜电影在线观看| 熟女视频一区,二区,三区| 青娱乐在线免费视频盛宴| 馒头大胆亚洲一区二区| 女同性ⅹxx女同hd| 欧美爆乳肉感大码在线观看| 东京热男人的av天堂| 亚洲免费福利一区二区三区| 青青青爽视频在线播放| 国产一区二区在线欧美| 午夜福利资源综合激情午夜福利资 | 天天躁日日躁狠狠躁躁欧美av| 天天日天天敢天天干| 国产高清精品一区二区三区| 国产揄拍高清国内精品对白| 激情色图一区二区三区| 中文字幕最新久久久| 香蕉片在线观看av| 新婚人妻聚会被中出| 18禁污污污app下载| 日韩熟女系列一区二区三区| 瑟瑟视频在线观看免费视频| 4个黑人操素人视频网站精品91| 大屁股熟女一区二区三区| 亚洲欧美国产麻豆综合| 密臀av一区在线观看| 91九色porny国产蝌蚪视频| tube69日本少妇| 大黑人性xxxxbbbb| 国产一区二区三免费视频| 制丝袜业一区二区三区| 青青青青在线视频免费观看| 久久精品国产23696| rct470中文字幕在线| 中文字幕在线观看极品视频| 人人妻人人人操人人人爽| 国产精品探花熟女在线观看| 免费一级特黄特色大片在线观看| 一区二区熟女人妻视频| 亚洲公开视频在线观看| 二区中出在线观看老师| 久草视频 久草视频2| 成人性黑人一级av| aiss午夜免费视频| 亚洲一区制服丝袜美腿| 国产污污污污网站在线| 小穴多水久久精品免费看| 特级无码毛片免费视频播放| 一区二区三区日韩久久| 亚洲精品av在线观看| 福利国产视频在线观看| 婷婷综合亚洲爱久久| 99re6热在线精品| 九九视频在线精品播放| 亚洲2021av天堂| 馒头大胆亚洲一区二区| 黄色视频在线观看高清无码| 蜜桃视频在线欧美一区| sspd152中文字幕在线| 精品一区二区三区三区色爱| 天天射,天天操,天天说| 特级欧美插插插插插bbbbb| 中文字幕一区二区自拍| 青青操免费日综合视频观看| 日韩一个色综合导航| 一区二区在线视频中文字幕 | 国产精品久久久黄网站| 亚洲一级av大片免费观看| 曰本无码人妻丰满熟妇啪啪| 中文字幕奴隷色的舞台50| 99热碰碰热精品a中文| 日本女大学生的黄色小视频| 国产一区av澳门在线观看| 亚洲高清国产自产av| 天天躁日日躁狠狠躁av麻豆| 99精品国产aⅴ在线观看| 中文字幕日韩无敌亚洲精品| 一区二区在线观看少妇| 国产精彩对白一区二区三区| 97超碰国语国产97超碰| 亚洲公开视频在线观看| 可以免费看的www视频你懂的| 黄色男人的天堂视频| 精品人妻伦一二三区久| 亚洲一级av无码一级久久精品| 亚洲蜜臀av一区二区三区九色 | 成年人黄视频在线观看| 在线免费91激情四射 | 欧美一级色视频美日韩| 亚洲av色香蕉一区二区三区| 日韩成人性色生活片| 欧洲欧美日韩国产在线| 国产va精品免费观看| 人妻在线精品录音叫床| 国产乱子伦精品视频潮优女| 青青草精品在线视频观看| 亚洲精品色在线观看视频| 日韩美女综合中文字幕pp| 宅男噜噜噜666免费观看| 99精品免费久久久久久久久a| 日韩精品激情在线观看| 亚洲中文字幕综合小综合| 日本人妻少妇18—xx| 国产真实乱子伦a视频 | 97人人妻人人澡人人爽人人精品 | 国产麻豆剧果冻传媒app| 亚洲av在线观看尤物| 51国产成人精品视频| 国产va在线观看精品| 亚洲一区二区久久久人妻| 国产精品伦理片一区二区| 亚洲一区二区人妻av| av成人在线观看一区| 2025年人妻中文字幕乱码在线| 青青青青在线视频免费观看| 黄色大片男人操女人逼| 红杏久久av人妻一区| 在线免费观看欧美小视频| 在线成人日韩av电影| 亚洲精品福利网站图片| 超级福利视频在线观看| 日日操夜夜撸天天干| 中文字幕网站你懂的| 青青青激情在线观看视频| 亚洲av人人澡人人爽人人爱| 精品久久久久久久久久中文蒉| 中文字幕 人妻精品| 在线视频自拍第三页| 精品黑人巨大在线一区| 五十路人妻熟女av一区二区| 中文字幕熟女人妻久久久| 欧美黄色录像免费看的| 国产熟妇一区二区三区av| 家庭女教师中文字幕在线播放| 欧美3p在线观看一区二区三区| 日本女大学生的黄色小视频| 亚洲av黄色在线网站| 2o22av在线视频| 国产精品福利小视频a| 天天日天天干天天干天天日| 大胆亚洲av日韩av| 熟女91pooyn熟女| 伊人综合免费在线视频| 黄色大片免费观看网站| 久碰精品少妇中文字幕av | 天天草天天色天天干| 国产激情av网站在线观看| 亚洲自拍偷拍精品网| 青青草在观免费国产精品| 男女之间激情网午夜在线| 99热99这里精品6国产| 亚洲久久午夜av一区二区| www天堂在线久久| 中文字幕在线欧美精品| 日本a级视频老女人| 丝袜长腿第一页在线| 国产精品视频一区在线播放| 国产日韩一区二区在线看| 亚洲国产最大av综合| 2017亚洲男人天堂| 91九色porny国产蝌蚪视频| 亚洲伊人久久精品影院一美女洗澡 | 亚洲激情偷拍一区二区| 护士特殊服务久久久久久久| 在线观看视频 你懂的| 中文字幕av熟女人妻| 91中文字幕最新合集| 青草亚洲视频在线观看| 亚洲午夜福利中文乱码字幕| 亚洲精品欧美日韩在线播放| 中文字幕,亚洲人妻| 端庄人妻堕落挣扎沉沦| 青青草亚洲国产精品视频| 青青在线视频性感少妇和隔壁黑丝 | 少妇高潮无套内谢麻豆| 天天干天天爱天天色| 天码人妻一区二区三区在线看| 色花堂在线av中文字幕九九| 大陆胖女人与丈夫操b国语高清| 亚洲男人在线天堂网| 国产精品久久久黄网站| 青青青青视频在线播放| 国产精品福利小视频a| 亚洲熟色妇av日韩熟色妇在线| 三级av中文字幕在线观看| 北条麻妃av在线免费观看| 亚洲一区二区三区精品乱码| 亚洲国产在线精品国偷产拍 | 亚洲视频在线观看高清| 88成人免费av网站| 精品日产卡一卡二卡国色天香 | 大鸡八强奸视频在线观看| 大鸡巴操娇小玲珑的女孩逼| 91免费观看国产免费| 大香蕉玖玖一区2区| 国产在线自在拍91国语自产精品| 非洲黑人一级特黄片| av老司机精品在线观看| 一区二区三区av高清免费| 亚洲成人熟妇一区二区三区 | 一级黄片久久久久久久久| 97香蕉碰碰人妻国产樱花| 亚洲一级特黄特黄黄色录像片| 国产真实乱子伦a视频| 亚洲精品 日韩电影| 在线免费观看99视频| 欧美一区二区三区高清不卡tv| 成人久久精品一区二区三区| 国产老熟女伦老熟妇ⅹ| 亚洲国产中文字幕啊啊啊不行了| 99热久久极品热亚洲| 日本一区精品视频在线观看| 欧美成人黄片一区二区三区 | 国产+亚洲+欧美+另类| 中文字幕网站你懂的| 天天干天天插天天谢| 人妻素人精油按摩中出| 五十路在线观看完整版| 福利一二三在线视频观看| 蜜桃臀av蜜桃臀av| 白白操白白色在线免费视频| 神马午夜在线观看视频| 男人操女人逼逼视频网站| 91精品啪在线免费| www久久久久久久久久久| 在线免费91激情四射| 女同性ⅹxx女同hd| 中文字幕在线一区精品| 人人人妻人人澡人人| 日韩午夜福利精品试看| 国产清纯美女al在线| 日本真人性生活视频免费看| 91极品新人『兔兔』精品新作| 亚洲精品成人网久久久久久小说 | 天天干夜夜操天天舔| 天码人妻一区二区三区在线看 | 蝴蝶伊人久久中文娱乐网| 大鸡巴后入爆操大屁股美女| 在线观看的a站 最新| 日韩一区二区电国产精品| 国产亚洲欧美另类在线观看| 国产视频一区在线观看| 日韩无码国产精品强奸乱伦| 天天做天天爽夜夜做少妇| 亚洲午夜伦理视频在线| 亚洲天堂av最新网址| 93人妻人人揉人人澡人人| 家庭女教师中文字幕在线播放| 97香蕉碰碰人妻国产樱花| 一个人免费在线观看ww视频| 蜜桃专区一区二区在线观看| 青草青永久在线视频18| 国产aⅴ一线在线观看| 男人操女人逼逼视频网站| 午夜频道成人在线91| 午夜精品久久久久久99热| 一区二区三区美女毛片| 四川五十路熟女av| 五月精品丁香久久久久福利社| 亚洲一区二区激情在线| 欧美日韩高清午夜蜜桃大香蕉| 久久久久久9999久久久久| 91精品国产91久久自产久强| 日本福利午夜电影在线观看| 免费看高清av的网站| 日本阿v视频在线免费观看| 亚洲天天干 夜夜操| 亚洲成人精品女人久久久| 天堂资源网av中文字幕| 亚洲激情偷拍一区二区 | 国产日韩av一区二区在线| 日韩欧美国产一区不卡| 97超碰最新免费在线观看| 大香蕉伊人国产在线| 日韩人妻在线视频免费| 大鸡巴操娇小玲珑的女孩逼| 伊人综合免费在线视频| 丰满少妇人妻xxxxx| 国产一区二区三免费视频| 欧美亚洲免费视频观看| 社区自拍揄拍尻屁你懂的| 精品国产乱码一区二区三区乱| 精彩视频99免费在线| 欧洲精品第一页欧洲精品亚洲| 天天日天天玩天天摸| 超黄超污网站在线观看| 亚洲 欧美 自拍 偷拍 在线| 少妇人妻100系列| 91亚洲国产成人精品性色| 久久久极品久久蜜桃| 青娱乐最新视频在线| 亚洲综合在线视频可播放| 中文字幕网站你懂的| 99精品国产自在现线观看| 女同久久精品秋霞网| 偷拍3456eee| 丰满熟女午夜福利视频| 国产精品成人xxxx| 国产精品久久久久国产三级试频| 把腿张开让我插进去视频| 天天日天天干天天插舔舔| 午夜精品福利一区二区三区p| 中文字幕AV在线免费看 | 不卡一不卡二不卡三| 红杏久久av人妻一区| 国产亚洲精品品视频在线| 大尺度激情四射网站| 9国产精品久久久久老师| 精品亚洲国产中文自在线| 综合激情网激情五月五月婷婷| 偷青青国产精品青青在线观看| 欧美精品久久久久久影院| 成年午夜免费无码区| 男大肉棒猛烈插女免费视频| 亚洲av色香蕉一区二区三区| 欧美一区二区三区激情啪啪啪 | 精品一线二线三线日本| 中文字幕一区二区亚洲一区| 狠狠操操操操操操操操操| 国产精品探花熟女在线观看 | 国产午夜亚洲精品麻豆| 中国黄色av一级片| 国产福利小视频二区| 男人天堂av天天操| 亚洲精品国偷自产在线观看蜜桃| 手机看片福利盒子日韩在线播放| av破解版在线观看| 亚洲少妇人妻无码精品| 男人操女人的逼免费视频| huangse网站在线观看| 午夜在线观看岛国av,com| 97黄网站在线观看| 一色桃子久久精品亚洲 | 99精品亚洲av无码国产另类| chinese国产盗摄一区二区| 桃色视频在线观看一区二区| 天天干天天日天天谢综合156| 少妇人妻久久久久视频黄片| av老司机精品在线观看| 骚货自慰被发现爆操| 视频一区二区综合精品| 色爱av一区二区三区| 熟女91pooyn熟女| 婷婷久久久久深爱网| 99久久超碰人妻国产| 大鸡巴操娇小玲珑的女孩逼| 57pao国产一区二区| 国产一区二区在线欧美| 日本性感美女三级视频| 91免费福利网91麻豆国产精品| 中文字幕一区二区人妻电影冢本 | 夫妻在线观看视频91| 又黄又刺激的午夜小视频| 不卡精品视频在线观看| 亚洲一区制服丝袜美腿| 亚洲一区二区人妻av| 欧美区一区二区三视频| 国产免费av一区二区凹凸四季| 天天操天天干天天艹| 黄工厂精品视频在线观看 | 99精品国自产在线人| 中文字幕一区的人妻欧美日韩| 国产亚洲视频在线二区| 中文 成人 在线 视频| 插逼视频双插洞国产操逼插洞| 深田咏美亚洲一区二区| 40道精品招牌菜特色| 一区二区三区蜜臀在线| 亚洲国产欧美一区二区三区…| 青青操免费日综合视频观看| 日本少妇高清视频xxxxx| 福利一二三在线视频观看| 亚洲综合在线视频可播放| 天天躁夜夜躁日日躁a麻豆| 成人av免费不卡在线观看| 中文字幕乱码人妻电影| 国产自拍在线观看成人| 国内资源最丰富的网站| 色97视频在线播放| 78色精品一区二区三区| 国产在线观看黄色视频| 免费观看国产综合视频| 91久久国产成人免费网站| 亚洲欧美一区二区三区爱爱动图 | 亚洲伊人色一综合网| 乱亲女秽乱长久久久| 鸡巴操逼一级黄色气| 国产精品污污污久久| 精品黑人一区二区三区久久国产| 国产亚洲视频在线观看| 成人国产小视频在线观看| 亚洲图片偷拍自拍区| 欧洲亚洲欧美日韩综合| 88成人免费av网站| 久草视频在线看免费| 91老师蜜桃臀大屁股| 久久精品久久精品亚洲人| 换爱交换乱高清大片| 精品亚洲在线免费观看| 中文乱理伦片在线观看| 欧美爆乳肉感大码在线观看| 人妻久久久精品69系列| 精品91高清在线观看| 精品老妇女久久9g国产| 男人天堂av天天操| 日韩欧美制服诱惑一区在线| 韩国爱爱视频中文字幕| 欧美精产国品一二三产品区别大吗| 亚洲欧美福利在线观看| 欧美另类z0z变态| 亚洲激情偷拍一区二区| 久久丁香婷婷六月天| 久久香蕉国产免费天天| 国产激情av网站在线观看| 国产综合视频在线看片| 亚洲高清国产自产av| 中字幕人妻熟女人妻a62v网| 久久尻中国美女视频| 超级福利视频在线观看| 亚洲蜜臀av一区二区三区九色| 粉嫩av懂色av蜜臀av| 免费观看国产综合视频| 国产三级影院在线观看| 不卡精品视频在线观看| 日韩一区二区三区三州| 2021最新热播中文字幕| 欧美精品久久久久久影院| 久久久久久99国产精品| 影音先锋女人av噜噜色| 97人人模人人爽人人喊 | 中文字幕人妻一区二区视频| 色婷婷综合激情五月免费观看 | 亚洲精品午夜久久久久| 亚洲免费在线视频网站| 国产日韩欧美视频在线导航| 免费在线播放a级片| 又色又爽又黄的美女裸体| 在线观看一区二区三级| 国产精品一区二区久久久av| 国产成人精品福利短视频| free性日本少妇| 白嫩白嫩美女极品国产在线观看| 国产女人被做到高潮免费视频 | 亚洲国产美女一区二区三区软件 | 97人人妻人人澡人人爽人人精品| 亚洲欧美另类手机在线| 18禁污污污app下载| 久久久久久久精品老熟妇| 中文字幕在线第一页成人 | 日本精品视频不卡一二三| 韩国三级aaaaa高清视频| 人妻丝袜av在线播放网址| 桃色视频在线观看一区二区| 成人亚洲国产综合精品| 天天操夜夜操天天操天天操| 欧美一区二区中文字幕电影| 中文字幕高清在线免费播放| 2020久久躁狠狠躁夜夜躁| 91 亚洲视频在线观看| 日韩欧美亚洲熟女人妻| 91试看福利一分钟| 91亚洲国产成人精品性色| 午夜美女少妇福利视频| 最新日韩av传媒在线| 2021久久免费视频| 青青草成人福利电影| 偷拍美女一区二区三区| 午夜久久久久久久精品熟女| 免费国产性生活视频| 久精品人妻一区二区三区| 天天色天天爱天天爽| 欧美另类一区二区视频| 红杏久久av人妻一区| 熟女人妻在线中出观看完整版| 久久永久免费精品人妻专区| 亚洲中文字幕校园春色| 久碰精品少妇中文字幕av| 青青青视频手机在线观看| 高清一区二区欧美系列| 国产精品手机在线看片| 国产一区二区火爆视频| 亚洲国产成人最新资源| 91九色porny国产蝌蚪视频| 久久免看30视频口爆视频| 夜鲁夜鲁狠鲁天天在线| 中文字幕乱码人妻电影| 人妻少妇亚洲精品中文字幕| 沈阳熟妇28厘米大战黑人| 黄网十四区丁香社区激情五月天 | 久草福利电影在线观看| 亚洲特黄aaaa片| 91精品国产高清自在线看香蕉网 | 韩国AV无码不卡在线播放| 亚洲最大黄 嗯色 操 啊| 最近中文字幕国产在线| 成人国产激情自拍三区| 国产精品久久久久久美女校花| 成人av亚洲一区二区| 香港三日本三韩国三欧美三级| 91she九色精品国产| 欧美一级色视频美日韩| 综合色区亚洲熟妇shxstz| av日韩在线观看大全| 欧美成一区二区三区四区| 青青草亚洲国产精品视频| 日韩国产乱码中文字幕| 在线播放 日韩 av| 亚洲va国产va欧美va在线| 黄色片一级美女黄色片| 亚洲av日韩高清hd| 99热久久这里只有精品8| 欧美美女人体视频一区| av大全在线播放免费| 无码日韩人妻精品久久| 可以免费看的www视频你懂的| 国产高清在线观看1区2区| 日本av熟女在线视频| 青青青aaaa免费| avjpm亚洲伊人久久| japanese日本熟妇另类| 免费黄高清无码国产| 午夜影院在线观看视频羞羞羞| 青青青青爽手机在线| 精品一区二区三区三区88| 婷婷久久久综合中文字幕| 91精品一区二区三区站长推荐| 男人在床上插女人视频| 热思思国产99re| 曰本无码人妻丰满熟妇啪啪| 国产黄色片蝌蚪九色91| 人妻少妇性色欲欧美日韩| 专门看国产熟妇的网站| weyvv5国产成人精品的视频| 午夜国产福利在线观看| 亚洲国产成人最新资源| 噜噜色噜噜噜久色超碰| 亚洲日产av一区二区在线| 青青青激情在线观看视频| 男人天堂av天天操| av天堂中文字幕最新| 丰满少妇人妻xxxxx| 天天爽夜夜爽人人爽QC| chinese国产盗摄一区二区| 欧美在线精品一区二区三区视频| 九色精品视频在线播放| 精品一区二区三区在线观看| 天天操天天干天天日狠狠插 | 阴茎插到阴道里面的视频| 黑人解禁人妻叶爱071| 午夜91一区二区三区| 人妻3p真实偷拍一二区| 日韩激情文学在线视频| 色偷偷伊人大杳蕉综合网| 精品av久久久久久久| 亚洲欧美国产麻豆综合| 亚洲男人让女人爽的视频| 日本熟妇色熟妇在线观看| 99精品国产自在现线观看| 亚洲欧美一区二区三区爱爱动图| 经典av尤物一区二区| 精产国品久久一二三产区区别| 欲乱人妻少妇在线视频裸| 久久麻豆亚洲精品av| 80电影天堂网官网| 国产露脸对白在线观看| 久久麻豆亚洲精品av| 一区二区三区 自拍偷拍| 99热国产精品666| 青青尤物在线观看视频网站| 日本熟女精品一区二区三区| 天堂av在线播放免费| 欧美在线偷拍视频免费看| 老司机99精品视频在线观看| 18禁污污污app下载| 在线国产中文字幕视频| av中文在线天堂精品| 天天日天天日天天射天天干| 亚洲 自拍 色综合图| 亚洲福利精品福利精品福利| 99久久激情婷婷综合五月天| 97小视频人妻一区二区| 日本精品视频不卡一二三| 好吊操视频这里只有精品| 区一区二区三国产中文字幕| 三上悠亚和黑人665番号| 性感美女高潮视频久久久| 国产在线一区二区三区麻酥酥| 在线国产精品一区二区三区| 日韩欧美中文国产在线| 亚洲 自拍 色综合图| 五十路息与子猛烈交尾视频| 精品老妇女久久9g国产| 美洲精品一二三产区区别| 91人妻人人做人人爽在线| 精品乱子伦一区二区三区免费播 | 欧美香蕉人妻精品一区二区| 欧美亚洲牲夜夜综合久久| 91亚洲国产成人精品性色| 大骚逼91抽插出水视频| 40道精品招牌菜特色| 午夜精品福利91av| 成人动漫大肉棒插进去视频| 国产视频一区二区午夜| 黑人性生活视频免费看| 男生用鸡操女生视频动漫| 老司机福利精品免费视频一区二区| 精品少妇一二三视频在线| 精品久久久久久久久久久a√国产 日本女大学生的黄色小视频 | 青春草视频在线免费播放| 日本黄在免费看视频| 国产精品福利小视频a| 成熟熟女国产精品一区| 日本美女成人在线视频| 国产视频网站国产视频| 夜色撩人久久7777| 午夜在线精品偷拍一区二| 日韩成人综艺在线播放| 婷婷综合蜜桃av在线| 日日日日日日日日夜夜夜夜夜夜| 91人妻人人做人人爽在线| 高清一区二区欧美系列| 亚洲综合在线观看免费| 亚洲综合一区二区精品久久| 日韩北条麻妃一区在线| 一区二区三区国产精选在线播放| 极品性荡少妇一区二区色欲| 人妻熟女在线一区二区| 激情人妻校园春色亚洲欧美| asmr福利视频在线观看| 中文字幕一区二区自拍| 在线免费观看黄页视频| 开心 色 六月 婷婷| 天天躁夜夜躁日日躁a麻豆| 美女福利视频导航网站| 亚洲av琪琪男人的天堂| 亚洲欧美另类手机在线| 国产精品三级三级三级| 红桃av成人在线观看| 日本乱人一区二区三区| 日日夜夜狠狠干视频| jiuse91九色视频| 中文字幕高清在线免费播放| 亚洲欧美激情中文字幕| 日本xx片在线观看| 天堂av在线官网中文| 日本一道二三区视频久久| 日韩成人综艺在线播放| 毛茸茸的大外阴中国视频| 动漫av网站18禁| 日日摸夜夜添夜夜添毛片性色av| 国产日韩欧美视频在线导航| 精品人妻一二三区久久| 任你操任你干精品在线视频| 亚洲成a人片777777| 综合页自拍视频在线播放| 中文字幕人妻被公上司喝醉在线| 午夜免费观看精品视频| 亚洲av天堂在线播放| 啊啊啊想要被插进去视频| 国产精品自拍偷拍a| japanese日本熟妇另类| 黄色三级网站免费下载| 韩国三级aaaaa高清视频| 男生用鸡操女生视频动漫| 摧残蹂躏av一二三区| 亚洲国产精品免费在线观看| 国产刺激激情美女网站| 欧美黑人性猛交xxxxⅹooo| 9国产精品久久久久老师| 亚洲国产中文字幕啊啊啊不行了| 国产高清女主播在线| 国产日韩av一区二区在线| 天天操天天射天天操天天天| 91www一区二区三区| 首之国产AV医生和护士小芳| av在线免费中文字幕| 成人国产激情自拍三区| 青青草视频手机免费在线观看| 欧美日韩在线精品一区二区三| 国产精品午夜国产小视频| 亚洲av男人天堂久久| 日韩欧美国产一区不卡| 日韩近亲视频在线观看| 2022精品久久久久久中文字幕| 人妻丝袜榨强中文字幕| 欧美日韩亚洲国产无线码| 国产av欧美精品高潮网站| 91精品免费久久久久久| 国产熟妇一区二区三区av| 久久精品视频一区二区三区四区| 日韩av有码中文字幕| 护士小嫩嫩又紧又爽20p| 欧美日韩熟女一区二区三区| 啪啪啪操人视频在线播放| 天天干天天操天天扣| 91老师蜜桃臀大屁股| 插逼视频双插洞国产操逼插洞| 91she九色精品国产| 特大黑人巨大xxxx| 中国无遮挡白丝袜二区精品| 欧洲精品第一页欧洲精品亚洲| 日韩在线视频观看有码在线| 亚洲av自拍天堂网| 天天躁日日躁狠狠躁av麻豆| 51国产偷自视频在线播放| 天天夜天天日天天日| 欧美香蕉人妻精品一区二区| 亚洲一区二区三区av网站| 在线视频精品你懂的| 丝袜肉丝一区二区三区四区在线看| 一级黄片大鸡巴插入美女| 亚洲成人av在线一区二区| 熟女人妻在线中出观看完整版| 日韩精品中文字幕播放| 黄页网视频在线免费观看| 亚洲激情av一区二区| 青青操免费日综合视频观看| 欧美另类z0z变态| 日韩精品电影亚洲一区| 亚洲精品福利网站图片| 北条麻妃av在线免费观看| 福利午夜视频在线观看| 在线免费观看靠比视频的网站| 国产片免费观看在线观看| 亚洲熟女久久久36d| 熟女国产一区亚洲中文字幕| 动漫美女的小穴视频| 亚洲国产精品久久久久蜜桃| 桃色视频在线观看一区二区 | weyvv5国产成人精品的视频| 日韩美av高清在线| 好吊视频—区二区三区| 青青擦在线视频国产在线| 黄色资源视频网站日韩| 一级a看免费观看网站| 激情国产小视频在线| 青娱乐在线免费视频盛宴| 成人资源在线观看免费官网| 亚洲va欧美va人人爽3p| 国产视频精品资源网站| 国产女孩喷水在线观看| 少妇高潮无套内谢麻豆| 和邻居少妇愉情中文字幕| 免费无码人妻日韩精品一区二区| 久久亚洲天堂中文对白| 亚洲护士一区二区三区| 亚洲欧美激情国产综合久久久| 北条麻妃av在线免费观看| 亚洲va天堂va国产va久| 91精品国产高清自在线看香蕉网| 人妻少妇亚洲一区二区| 日本精品视频不卡一二三| 午夜毛片不卡免费观看视频| 亚洲精品麻豆免费在线观看| 狠狠操狠狠操免费视频| 91色老99久久九九爱精品| 精品日产卡一卡二卡国色天香| 一区二区三区日本伦理| 国产午夜男女爽爽爽爽爽视频| 成年人免费看在线视频| 好了av中文字幕在线| 色花堂在线av中文字幕九九| 高清成人av一区三区| 一区二区三区蜜臀在线| 沈阳熟妇28厘米大战黑人| 直接能看的国产av| 年轻的人妻被夫上司侵犯| 精品视频一区二区三区四区五区| 狍和女人的王色毛片| 婷婷久久久久深爱网| 天堂av在线官网中文| 任我爽精品视频在线播放| 熟妇一区二区三区高清版| 五十路熟女人妻一区二区9933| 97精品视频在线观看| 人妻少妇精品久久久久久| 春色激情网欧美成人| 中文字幕av一区在线观看| 国产成人午夜精品福利| 亚洲精品国产综合久久久久久久久| jiuse91九色视频| 人妻熟女在线一区二区| 日噜噜噜夜夜噜噜噜天天噜噜噜| 18禁无翼鸟成人在线| 欧美在线一二三视频| 日本丰满熟妇BBXBBXHD| 扒开让我视频在线观看| 播放日本一区二区三区电影| 日本又色又爽又黄又粗| 2022国产综合在线干| 深夜男人福利在线观看| 亚洲国产成人av在线一区| 一区二区三区久久久91| 91桃色成人网络在线观看| 激情小视频国产在线| japanese日本熟妇另类| 亚洲av成人免费网站| 精品一区二区亚洲欧美| 狠狠嗨日韩综合久久| 5528327男人天堂| 亚洲精品无码色午夜福利理论片| 亚洲av一妻不如妾| 婷婷午夜国产精品久久久| 成年人中文字幕在线观看| 亚洲av自拍偷拍综合| 国产精品探花熟女在线观看| 99国内精品永久免费视频| 欧美日韩v中文在线| 日韩精品二区一区久久| 专门看国产熟妇的网站| 免费在线看的黄片视频| 国产av福利网址大全| 97精品人妻一区二区三区精品| 色吉吉影音天天干天天操 | 亚洲嫩模一区二区三区| 高清成人av一区三区| 激情人妻校园春色亚洲欧美| 福利一二三在线视频观看| 老司机福利精品免费视频一区二区 | 女同性ⅹxx女同hd| 日本免费午夜视频网站| 欧美男同性恋69视频| 经典av尤物一区二区| 黄色片黄色片wyaa| 97青青青手机在线视频| 色哟哟在线网站入口| 成年人黄视频在线观看| free性日本少妇| 五十路在线观看完整版| 国产成人精品av网站| 亚洲av黄色在线网站| 在线观看日韩激情视频| 中文字幕一区二区亚洲一区| 久久久久只精品国产三级| 国产精品3p和黑人大战| 51国产偷自视频在线播放| 亚洲熟女女同志女同| 91桃色成人网络在线观看| 午夜久久久久久久99| 黄色的网站在线免费看| 鸡巴操逼一级黄色气| 国产综合高清在线观看| 日韩中文字幕在线播放第二页| 日本熟妇喷水xxx| 青青草精品在线视频观看| 成年人的在线免费视频| 国产精品免费不卡av| 国产一区二区火爆视频| 男女啪啪啪啪啪的网站| 2025年人妻中文字幕乱码在线| 午夜影院在线观看视频羞羞羞| 日韩精品激情在线观看| 国产精品国色综合久久| 亚洲成人情色电影在线观看| 欧美韩国日本国产亚洲| 老司机福利精品免费视频一区二区| 91久久人澡人人添人人爽乱| 久久农村老妇乱69系列| 亚洲精品乱码久久久久久密桃明 | 亚洲欧美清纯唯美另类| 性欧美日本大妈母与子| 亚洲码av无色中文| 国产成人自拍视频在线免费观看| 熟女国产一区亚洲中文字幕| 日本熟妇色熟妇在线观看| 亚洲在线免费h观看网站| 精产国品久久一二三产区区别| 欧美在线精品一区二区三区视频| 不卡日韩av在线观看| 亚洲av日韩高清hd| 18禁美女黄网站色大片下载| 午夜场射精嗯嗯啊啊视频| 欧美在线精品一区二区三区视频| 国产精品视频一区在线播放| 我想看操逼黄色大片| 天天躁夜夜躁日日躁a麻豆| 国内自拍第一页在线观看| 欧美另类重口味极品在线观看| 精品久久久久久久久久中文蒉| 99热久久这里只有精品| 插小穴高清无码中文字幕| 亚国产成人精品久久久| 绝顶痉挛大潮喷高潮无码| 国产视频一区在线观看| 免费岛国喷水视频在线观看| 亚洲国产在线精品国偷产拍| 2022精品久久久久久中文字幕| 十八禁在线观看地址免费| 精品一线二线三线日本| 天天日天天干天天舔天天射| 5528327男人天堂| 国产精品国产三级国产精东 | 91av精品视频在线| 在线免费观看日本伦理| 欧美专区日韩专区国产专区| 欧美日本在线视频一区| 天天操天天爽天天干| 天天操天天弄天天射| 色哟哟国产精品入口| 欧美成人黄片一区二区三区| 18禁美女羞羞免费网站| 好吊视频—区二区三区| 80电影天堂网官网| 日本a级视频老女人| 欧美一区二区三区啪啪同性| 91国内视频在线观看| 国产成人午夜精品福利| 粉嫩av蜜乳av蜜臀| 亚洲超碰97人人做人人爱| 天码人妻一区二区三区在线看| 天天干天天操天天摸天天射| 久久久久久久久久一区二区三区 | 一区二区三区久久中文字幕| 骚货自慰被发现爆操| 亚洲av日韩av第一区二区三区| 和邻居少妇愉情中文字幕| 在线播放 日韩 av| 天天干夜夜操啊啊啊| 精品亚洲国产中文自在线| 亚洲无线观看国产高清在线| 亚洲中文字幕人妻一区| 国产高清在线观看1区2区| 一区二区久久成人网| 2021年国产精品自拍| 青青青青青青青在线播放视频| 超碰公开大香蕉97| 9色在线视频免费观看| 福利片区一区二体验区| 亚洲伊人av天堂有码在线| 成人在线欧美日韩国产| 国产日韩一区二区在线看| 亚洲1区2区3区精华液| 天天想要天天操天天干| 日韩一个色综合导航| 亚洲 自拍 色综合图| 亚洲成av人无码不卡影片一| 黑人大几巴狂插日本少妇| 99热99re在线播放| 老熟妇xxxhd老熟女| 国产精品精品精品999| 国产激情av网站在线观看| 国际av大片在线免费观看| 亚洲国产成人在线一区| 亚洲 欧美 精品 激情 偷拍| 精品久久久久久久久久久久人妻| 欧美中文字幕一区最新网址| 大胆亚洲av日韩av| 91色网站免费在线观看| 中文字幕熟女人妻久久久| 国产午夜亚洲精品麻豆| 五十路熟女av天堂| 视频在线亚洲一区二区| 五十路息与子猛烈交尾视频| 中文字幕日韩精品就在这里| 日本少妇人妻xxxxx18| 日韩欧美在线观看不卡一区二区| 好男人视频在线免费观看网站| 精品美女在线观看视频在线观看 | 国产综合精品久久久久蜜臀| 免费在线播放a级片| 中文字幕在线永久免费播放| 在线观看av观看av| 一级黄色av在线观看| 久久久久久97三级| 中文字幕日韩91人妻在线| 99精品视频之69精品视频| 国产实拍勾搭女技师av在线| 大鸡吧插逼逼视频免费看| 免费69视频在线看| 国产av福利网址大全| 91色秘乱一区二区三区| 美女吃鸡巴操逼高潮视频| 国产a级毛久久久久精品| 2012中文字幕在线高清| 欧美成人综合视频一区二区| 女同性ⅹxx女同h偷拍| 亚洲丝袜老师诱惑在线观看| 99亚洲美女一区二区三区| 动色av一区二区三区| 亚洲成人黄色一区二区三区| 97精品综合久久在线| 亚洲变态另类色图天堂网| 在线免费视频 自拍| 国产日韩欧美视频在线导航| 99婷婷在线观看视频| 粉嫩av懂色av蜜臀av| 国产精品黄大片在线播放| 夜夜骑夜夜操夜夜奸| 中文字幕日韩人妻在线三区| 在线观看视频 你懂的| 含骚鸡巴玩逼逼视频| 久久机热/这里只有| 亚洲精品成人网久久久久久小说| 传媒在线播放国产精品一区| 亚洲av琪琪男人的天堂| 天天躁日日躁狠狠躁av麻豆| 国产精品一二三不卡带免费视频| 最近中文2019年在线看| 午夜在线观看一区视频| 午夜激情精品福利视频| 亚洲综合在线观看免费| 成人综合亚洲欧美一区| 欧美一级视频一区二区| 日本女人一级免费片| 一区二区三区另类在线| 老司机你懂得福利视频| 亚洲欧美精品综合图片小说| 国产露脸对白在线观看| 一区二区三区的久久的蜜桃的视频| 经典av尤物一区二区| 懂色av蜜桃a v| 日韩不卡中文在线视频网站| 国产中文精品在线观看| 大尺度激情四射网站| 看一级特黄a大片日本片黑人| 亚洲成人免费看电影| 激情啪啪啪啪一区二区三区| 中文字幕日韩精品就在这里| 青青青青青操视频在线观看| 亚洲av香蕉一区区二区三区犇| 大鸡吧插入女阴道黄色片| 亚洲美女自偷自拍11页| 一二三中文乱码亚洲乱码one| 在线免费观看99视频| 久久99久久99精品影院| 啪啪啪啪啪啪啪免费视频| 日本精品一区二区三区在线视频。 | 含骚鸡巴玩逼逼视频| 国产精品三级三级三级| av一本二本在线观看| 扒开腿挺进肉嫩小18禁视频| 99精品亚洲av无码国产另类| 久久艹在线观看视频| 欧美日韩一级黄片免费观看| 人妻无码色噜噜狠狠狠狠色| 动漫黑丝美女的鸡巴| 日韩加勒比东京热二区| 青春草视频在线免费播放| 成年人午夜黄片视频资源| 区一区二区三国产中文字幕| 黑人乱偷人妻中文字幕| 偷拍3456eee| 在线播放国产黄色av| 欲乱人妻少妇在线视频裸| 在线新三级黄伊人网| 91成人精品亚洲国产| 哥哥姐姐综合激情小说| 中文字幕 码 在线视频| 亚欧在线视频你懂的| 国产麻豆剧果冻传媒app| 懂色av之国产精品| 欧美精品激情在线最新观看视频| 少妇ww搡性bbb91| 日韩北条麻妃一区在线| 热久久只有这里有精品| 久久久精品欧洲亚洲av| 女生被男生插的视频网站| 中文字幕av熟女人妻| 天天做天天干天天操天天射| 中文字幕—97超碰网| 99久久超碰人妻国产| 中文字幕一区的人妻欧美日韩| 99人妻视频免费在线| 91精品激情五月婷婷在线| 在线观看欧美黄片一区二区三区 | av黄色成人在线观看| 亚洲精品亚洲人成在线导航| 自拍偷拍亚洲欧美在线视频| av大全在线播放免费| 熟女视频一区,二区,三区| 亚洲精品无码久久久久不卡| 日本女人一级免费片| 一区二区久久成人网| 黄色片黄色片wyaa| 成人激情文学网人妻| 欧美一级片免费在线成人观看 | 中文字幕日本人妻中出| tube69日本少妇| 国产在线91观看免费观看| 美女福利视频导航网站| 91试看福利一分钟| 国产欧美日韩在线观看不卡| 99精品久久久久久久91蜜桃| 亚洲欧美激情人妻偷拍| sw137 中文字幕 在线| 日本免费午夜视频网站| 国产精品黄片免费在线观看| 桃色视频在线观看一区二区 | 中文字幕在线观看极品视频| 亚洲欧美清纯唯美另类| 天天日天天干天天舔天天射| 成人激情文学网人妻 | yy6080国产在线视频| 中文字幕日韩无敌亚洲精品| 国语对白xxxx乱大交| 中文字幕日韩91人妻在线| 黑人3p华裔熟女普通话| 中文字幕网站你懂的| 亚洲国产精品久久久久蜜桃| 97精品视频在线观看| 韩国一级特黄大片做受| 啊啊好大好爽啊啊操我啊啊视频 | wwwxxx一级黄色片| 成人影片高清在线观看| 美女福利视频网址导航| 黑人巨大的吊bdsm| 成人av在线资源网站| 中文字幕第1页av一天堂网| 一区二区三区激情在线| 婷婷综合蜜桃av在线| 青青青激情在线观看视频| 亚洲中文精品字幕在线观看| 精品国产高潮中文字幕| 激情色图一区二区三区| 欧洲亚洲欧美日韩综合| 播放日本一区二区三区电影| 国内自拍第一页在线观看| 在线亚洲天堂色播av电影| av高潮迭起在线观看| 激情人妻校园春色亚洲欧美 | 成人影片高清在线观看| 亚洲熟色妇av日韩熟色妇在线| 亚洲中文字幕国产日韩| 一区二区视频视频视频| 国产精品亚洲在线观看| 看一级特黄a大片日本片黑人| 国产精品久久久久久久久福交 | 在线免费观看av日韩| 五十路熟女av天堂| 婷婷色国产黑丝少妇勾搭AV | 夜夜骑夜夜操夜夜奸| 一区二区熟女人妻视频| 大肉大捧一进一出好爽在线视频 | 日本免费午夜视频网站| 午夜精品一区二区三区更新| 成年人黄视频在线观看| 在线观看免费岛国av| 中文字幕无码一区二区免费| av日韩在线观看大全| 欧美亚洲免费视频观看| 男人插女人视频网站| 日本乱人一区二区三区| 91传媒一区二区三区| 黄色资源视频网站日韩| 中文字幕免费福利视频6| 中文字幕无码一区二区免费 | 天码人妻一区二区三区在线看 | 亚洲欧美精品综合图片小说| 嫩草aⅴ一区二区三区| 欧美老妇精品另类不卡片| 亚洲偷自拍高清视频| 端庄人妻堕落挣扎沉沦| 精品一区二区三区欧美| 天天操天天弄天天射| 少妇人妻久久久久视频黄片| 国内资源最丰富的网站| 日本精品一区二区三区在线视频。 | 五十路熟女av天堂| 欧美男同性恋69视频| 中文字幕亚洲中文字幕| 欲满人妻中文字幕在线| 9国产精品久久久久老师| 日韩美女搞黄视频免费| 久久机热/这里只有| 亚洲av可乐操首页| 成人影片高清在线观看 | av老司机精品在线观看| 国产内射中出在线观看| 久久久91蜜桃精品ad| 免费黄高清无码国产| 欧美精产国品一二三产品价格| 日韩欧美制服诱惑一区在线| 国产熟妇乱妇熟色T区| 久久尻中国美女视频| aⅴ精产国品一二三产品| aⅴ精产国品一二三产品| 极品粉嫩小泬白浆20p主播 | 精品suv一区二区69| 国产午夜激情福利小视频在线| 熟女人妻一区二区精品视频| 成人av天堂丝袜在线观看| 北条麻妃av在线免费观看| 日本福利午夜电影在线观看|