激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

php高級教程

時(shí)間:2024-10-06 23:43:08 PHP 我要投稿
  • 相關(guān)推薦

php高級教程

  導語(yǔ):php是it行業(yè)語(yǔ)言,也是一門(mén)較熱的網(wǎng)絡(luò )技術(shù),下面就由小編為大家介紹一下php高級教程,歡迎大家閱讀!

  一、PHP- 多維數組:

  $cars = array(

  array("huawei","12","11"),

  array("meizu","23","12"),

  array("iphone","12","4")

  );

  $title = array("手機總共有:","個(gè),已經(jīng)賣(mài)出去了","個(gè)!");

  for($i=0;$i{ for($j=0;$j { echo $cars[$i][$j]; echo $title[$j]; } echo " ";}?>

  輸出:

  huawei手機總共有:12個(gè),已經(jīng)賣(mài)出去了11個(gè)!

  meizu手機總共有:23個(gè),已經(jīng)賣(mài)出去了12個(gè)!

  iphone手機總共有:12個(gè),已經(jīng)賣(mài)出去了4個(gè)!

  二、PHP 日期和時(shí)間

  date() 函數的格式參數是必需的,它們規定如何格式化日期或時(shí)間。

  下面列出了一些常用于日期的字符:

  ·d - 表示月里的某天(01-31) D-表示當前這天的英文星期簡(jiǎn)寫(xiě)

  ·m - 表示月(01-12) M-表示當前月的英文縮寫(xiě)

  ·Y - 表示年(四位數) y-表示年(后兩位數)

  ·1 - 表示周里的某天 L-返回0

  其他字符,比如 "/","." 或 "-" 也可被 插入字符中,以增加其他格式。

  echo"今天是 " . date("YYYY/m/d") ." "; //2017201720172017/06/26 由此可見(jiàn)不能用js中yyyy-mm-dd的形式

  echo"今天是 " . date("Y.m.d") . " "; //2017.06.26

  echo"今天是 " . date("Y-M-D") . " "; //17-Jun-Mon

  echo"今天是 " . date("l") . " "; //Monday 星期全稱(chēng)

  echo"今天是 " . date("L") . " "; //0

  ?>

  獲得簡(jiǎn)單的時(shí)間

  下面是常用于時(shí)間的字符:

  date_default_timezone_set("Asia/Shanghai"); //設置時(shí)區

  echo date_default_timezone_get(oid);//獲取當前時(shí)區

  ·h - 帶有首位零的 12 小時(shí)小時(shí)格式 H-24小時(shí)格式

  ·i - 帶有首位零的分鐘 I-0

  ·s - 帶有首位零的秒(00 -59) S-返回th我也不知道是什么鬼

  ·a - 小寫(xiě)的午前和午后(am 或 pm) A-返回大寫(xiě)格式:AM或PM

  echo"現在是 " . date("h:i:sa") . " "; //現在是 02:15:44pm

  echo"現在是 " . date("H:I:SA") . " "; //現在是 14:0:thPM

  通過(guò) PHP mktime() 創(chuàng )建日期

  date() 函數中可選的時(shí)間戳參數規定時(shí)間戳。如果您未規定時(shí)間戳,將使用當前日期和時(shí)間

  語(yǔ)法

  mktime(hour,minute,second,month,day,year)

  $d=mktime(9,12, 31, 6, 10, 215) ;

  echo"創(chuàng )建日期是 " . date("Y-m-d h:i:sa", $d) ." "; //在date方法里面傳參則取的是參數中的時(shí)間,如果不傳的話(huà)則取的是當前時(shí)間

  通過(guò) PHP strtotime() 用字符串來(lái)創(chuàng )建日期

  PHP strtotime() 函數用于把人類(lèi)可讀的字符串轉換為Unix 時(shí)間。

  $d=strtotime("10:38pm April 15 2015");

  echo "創(chuàng )建日期是 " . date("Y-m-d h:i:sa", $d);

  如果輸入了它不能識別的字符串則保存為 1970-01-01 12:00:00am

  計算兩個(gè)時(shí)間段內的時(shí)間所有的周六

  $startdate = strtotime("Saturday");

  $enddate = strtotime("+6 weeks",$startdate);

  while ($startdate < $enddate) {

  echo date("M d", $startdate)," ";

  $startdate = strtotime("+1 week", $startdate); //在$startdate基礎上加一個(gè)禮拜,你還可以加1天,1個(gè)月,1年

  }

  ?>

  計算距離某一天還有多長(cháng)時(shí)間

  $d1=strtotime("2017-7-30");

  $d2=ceil(($d1-time())/60/60/24);

  echo "距離十二月三十一日還有:" . $d2 ." 天。";

  ?>

  三、PHP Cookies

  cookie 常用于識別用戶(hù)。cookie 是服務(wù)器留在用戶(hù)計算機中的小文件。每當相同的計算機通過(guò)瀏覽器請求頁(yè)面時(shí),它同時(shí)會(huì )發(fā)送 cookie。通過(guò) PHP,您能夠創(chuàng )建并取回 cookie 的值。

  創(chuàng )建cookie

  setcookie() 函數用于設置 cookie。

  注釋?zhuān)簊etcookie() 函數必須位于

  標簽之前。

  語(yǔ)法

  setcookie(name, value, expire, path, domain);

  在下面的例子中,我們將創(chuàng )建名為 "user" 的 cookie,把為它賦值 "Alex Porter"。我們也規定了此 cookie 在一小時(shí)后過(guò)期:

  setcookie("user", "Alex Porter", time()+3600);

  ?>

  注釋?zhuān)涸诎l(fā)送 cookie 時(shí),cookie 的值會(huì )自動(dòng)進(jìn)行 URL 編碼,在取回時(shí)進(jìn)行自動(dòng)解碼(為防止 URL 編碼,請使用setrawcookie() 取而代之)。

  取回 Cookie 的值

  PHP 的 $_COOKIE 變量用于取回cookie 的值。

  // Print a cookie

  echo $_COOKIE["user"];

  // A way to view all cookies

  print_r($_COOKIE);

  ?>

  刪除 cookie當刪除 cookie 時(shí),您應當使過(guò)期日期變更為過(guò)去的時(shí)間點(diǎn)。

  // set the expiration date to one hour ago

  setcookie("user", "", time()-3600);

  ?>

  如果瀏覽器不支持 cookie 該怎么辦?

  如果您的應用程序涉及不支持cookie 的瀏覽器,就不得不采取其他方法在應用程序中從一張頁(yè)面向另一張頁(yè)面傳遞信息。一種方式是從表單傳遞數據(有關(guān)表單和用戶(hù)輸入的內容,稍早前我們已經(jīng)在本教程中介紹過(guò)了)。

  下面的表單在用戶(hù)單擊提交按鈕時(shí)向"welcome.php" 提交了用戶(hù)輸入:

  Name:

  Age:

  取回"welcome.php" 中的值,就像這樣:

  Welcome .

  You are years old.

  四、PHP Sessions

  PHP Session 變量

  當您運行一個(gè)應用程序時(shí),您會(huì )打開(kāi)它,做些更改,然后關(guān)閉它。這很像一次會(huì )話(huà)。計算機清楚你是誰(shuí)。它知道你何時(shí)啟動(dòng)應用程序,并在何時(shí)終止。但是在因特網(wǎng)上,存在一個(gè)問(wèn)題:服務(wù)器不知道你是誰(shuí)以及你做什么,這是由于 HTTP 地址不能維持狀態(tài)。

  通過(guò)在服務(wù)器上存儲用戶(hù)信息以便隨后使用,PHP session 解決了這個(gè)問(wèn)題(比如用戶(hù)名稱(chēng)、購買(mǎi)商品等)。不過(guò),會(huì )話(huà)信息是臨時(shí)的,在用戶(hù)離開(kāi)網(wǎng)站后將被刪除。如果您需要永久儲存信息,可以把數據存儲在數據庫中。

  Session 的工作機制是:為每個(gè)訪(fǎng)問(wèn)者創(chuàng )建一個(gè)唯一的 id (UID),并基于這個(gè) UID 來(lái)存儲變量。UID 存儲在cookie 中,亦或通過(guò) URL 進(jìn)行傳導。

  開(kāi)始 PHP Session

  在您把用戶(hù)信息存儲到 PHPsession 中之前,首先必須啟動(dòng)會(huì )話(huà)。

  注釋?zhuān)簊ession_start() 函數必須位于

  標簽之前:

  上面的代碼會(huì )向服務(wù)器注冊用戶(hù)的會(huì )話(huà),以便您可以開(kāi)始保存用戶(hù)信息,同時(shí)會(huì )為用戶(hù)會(huì )話(huà)分配一個(gè) UID。

  存儲 Session 變量

  存儲和取回session 變量的正確方法是使用 PHP$_SESSION 變量:

  session_start();

  // store session data

  $_SESSION['views']=1;

  ?>

  //retrieve session data

  echo "Pageviews=". $_SESSION['views'];

  ?>

  輸出:

  Pageviews=1

  在下面的例子中,我們創(chuàng )建了一個(gè)簡(jiǎn)單的 page-view 計數器。isset() 函數檢測是否已設置 "views" 變量。如果已設置 "views" 變量,我們累加計數器。如果 "views" 不存在,則我們創(chuàng )建 "views" 變量,并把它設置為 1:

  session_start();

  if(isset($_SESSION['views']))

  $_SESSION['views']=$_SESSION['views']+1;

  else

  $_SESSION['views']=1;

  echo "Views=". $_SESSION['views'];

  ?>

  終結 Session

  如果您希望刪除某些session 數據,可以使用 unset() 或 session_destroy() 函數。

  unset() 函數用于釋放指定的 session 變量:

  unset($_SESSION['views']);

  ?>

  您也可以通過(guò)session_destroy() 函數徹底終結 session:

  session_destroy();

  ?>

  注釋?zhuān)簊ession_destroy() 將重置 session,您將失去所有已存儲的session 數據。

  五、PHP 錯誤處理

  錯誤處理方法:

  ·簡(jiǎn)單的 "die()" 語(yǔ)句

  ·自定義錯誤和錯誤觸發(fā)器

  ·錯誤報告

  為了避免用戶(hù)獲得類(lèi)似上面的錯誤消息,我們在訪(fǎng)問(wèn)文件之前檢測該文件是否存在:

  if(!file_exists("welcome.txt"))

  {

  die("File not found");

  }

  else

  {

  $file=fopen("welcome.txt","r");

  }

  ?>

  假如文件不存在,您會(huì )得到類(lèi)似這樣的錯誤消息:

  File not found

  比起之前的代碼,上面的代碼更有效,這是由于它采用了一個(gè)簡(jiǎn)單的錯誤處理機制在錯誤之后終止了腳本。

  不過(guò),簡(jiǎn)單地終止腳本并不總是恰當的方式。讓我們研究一下用于處理錯誤的備選的 PHP 函數。

  創(chuàng )建自定義錯誤處理器

  創(chuàng )建一個(gè)自定義的錯誤處理器,可以在PHP 中發(fā)生錯誤時(shí)調用該函數。

  該函數必須有能力處理至少兩個(gè)參數(error level 和 error message),但是可以接受最多五個(gè)參數(可選的:file, line-number 以及error context):

  語(yǔ)法

  error_function(error_level,error_message,

  error_file,error_line,error_context)

  參數描述

  error_level:必需。為用戶(hù)定義的錯誤規定錯誤報告級別。必須是一個(gè)值數。參見(jiàn)下面的表格:錯誤報告級別。

  error_message:必需。為用戶(hù)定義的錯誤規定錯誤消息。

  error_file:可選。規定錯誤在其中發(fā)生的文件名。

  error_line:可選。規定錯誤發(fā)生的行號。

  error_context:可選。規定一個(gè)數組,包含了當錯誤發(fā)生時(shí)在用的每個(gè)變量以及它們的值。

  創(chuàng )建錯誤處理函數

  function customError($errno, $errstr)

  {

  echo "Error: [$errno] $errstr

  ";

  echo "Ending Script";

  die();

  }

  現在,我們已經(jīng)創(chuàng )建了一個(gè)錯誤處理函數,我們需要確定在何時(shí)觸發(fā)該函數。

  Set ErrorHandler

  PHP 的默認錯誤處理程序是內建的錯誤處理程序。我們打算把上面的函數改造為腳本運行期間的默認錯誤處理程序。

  可以修改錯誤處理程序,使其僅應用到某些錯誤,這樣腳本就可以不同的方式來(lái)處理不同的錯誤。不過(guò),在本例中,我們打算針對所有錯誤來(lái)使用我們的自定義錯誤處理程序:

  set_error_handler("customError");

  由于我們希望我們的自定義函數來(lái)處理所有錯誤,set_error_handler() 僅需要一個(gè)參數,可以添加第二個(gè)參數來(lái)規定錯誤級別。

  //定義錯誤處理函數

  function customError($errno, $errstr)

  {

  echo "rror: [$errno] $errstr";

  }

  //設置錯誤處理函數

  set_error_handler("customError");

  //觸發(fā)錯誤

  echo($test);

  ?>

  可能的錯誤類(lèi)型:

  ·E_USER_ERROR - 致命的用戶(hù)生成的run-time 錯誤。錯誤無(wú)法恢復。腳本執行被中斷。

  ·E_USER_WARNING - 非致命的用戶(hù)生成的run-time 警告。腳本執行不被中斷。

  ·E_USER_NOTICE - 默認。用戶(hù)生成的run-time 通知。腳本發(fā)現了可能的錯誤,也有可能在腳本運行正常時(shí)發(fā)生。

  例子

  在本例中,如果"test" 變量大于 "1",則發(fā)生E_USER_WARNING 錯誤。如果發(fā)生了 E_USER_WARNING,我們將使用我們的自定義錯誤處理程序并結束腳本:

  //error handler function

  function customError($errno, $errstr)

  {

  echo "Error: [$errno] $errstr

  ";

  echo "Ending Script";

  die();

  }

  //set error handler

  set_error_handler("customError",E_USER_WARNING);

  //trigger error

  $test=2;

  if ($test>1)

  {

  trigger_error("Value must be 1 or below",E_USER_WARNING);

  }

  ?>

  錯誤記錄

  通過(guò) E-Mail 發(fā)送錯誤消息

  function customError($errno, $errstr)

  {

  echo "Error: [$errno] $errstr ";

  echo "Webmaster has been notified";

  error_log("Error: [$errno] $errstr",1,

  "526369948@qq.com","From: 526369948@qq.com");

  }

  六、PHP 異常處理

  異常處理用于在指定的錯誤(異常)情況發(fā)生時(shí)改變腳本的正常流程。這種情況稱(chēng)為異常。

  當異常被觸發(fā)時(shí),通常會(huì )發(fā)生:

  ·當前代碼狀態(tài)被保存

  ·代碼執行被切換到預定義的異常處理器函數

  ·根據情況,處理器也許會(huì )從保存的代碼狀態(tài)重新開(kāi)始執行代碼,終止腳本執行,或從代碼中另外的位置繼續執行腳本

  我們將展示不同的錯誤處理方法:

  ·異常的基本使用

  ·創(chuàng )建自定義的異常處理器

  ·多個(gè)異常

  ·重新拋出異常

  ·設置頂層異常處理器

  Try, throw 和 catch

  要避免上面例子出現的錯誤,我們需要創(chuàng )建適當的代碼來(lái)處理異常。

  正確的處理程序應當包括:

  1.Try - 使用異常的函數應該位于"try" 代碼塊內。如果沒(méi)有觸發(fā)異常,則代碼將照常繼續執行。但是如果異常被觸發(fā),會(huì )拋出一個(gè)異常。

  2.Throw - 這里規定如何觸發(fā)異常。每一個(gè) "throw" 必須對應至少一個(gè) "catch"

  3.Catch - "catch" 代碼塊會(huì )捕獲異常,并創(chuàng )建一個(gè)包含異常信息的對象

  讓我們觸發(fā)一個(gè)異常:

  //創(chuàng )建可拋出一個(gè)異常的函數

  function checkNum($number)

  {

  if($number>1)

  {

  throw new Exception("Value must be 1 or below");

  }

  return true;

  }

  //在 "try" 代碼塊中觸發(fā)異常

  try

  {

  checkNum(2);//如果拋出異常則執行catch中的語(yǔ)句,這里就不接著(zhù)往下執行了

  //If the exception is thrown, this text will not be shown

  echo 'If you see this, the number is 1 or below';

  }

  //捕獲異常

  catch(Exception $e)

  {

  echo 'Message: ' .$e->getMessage();

  }

  ?>

  上面代碼將獲得類(lèi)似這樣一個(gè)錯誤:

  Message: Value must be 1 or below

  創(chuàng )建一個(gè)自定義的 Exception 類(lèi)

  創(chuàng )建自定義的異常處理程序非常簡(jiǎn)單。我們簡(jiǎn)單地創(chuàng )建了一個(gè)專(zhuān)門(mén)的類(lèi),當 PHP 中發(fā)生異常時(shí),可調用其函數。該類(lèi)必須是 exception 類(lèi)的一個(gè)擴展。

  這個(gè)自定義的exception 類(lèi)繼承了 PHP 的 exception 類(lèi)的所有屬性,您可向其添加自定義的函數。

  我們開(kāi)始創(chuàng )建exception 類(lèi):

  class customException extends Exception //extends 相當于繼承關(guān)鍵字

  {

  public function errorMessage() //定義了自己的報錯函數

  {

  //error message 在繼承的類(lèi)中,可以訪(fǎng)問(wèn)基類(lèi)的方法

  $errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile()

  .': '.$this->getMessage().' is not a valid E-Mail address';

  return $errorMsg;

  }

  }

  $email = "someone@example...com";

  try

  {

  //check if

  if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)

  {

  //throw exception if email is not valid

  throw new customException($email);

  }

  }

  catch (customException $e)

  {

  //display custom message

  echo $e->errorMessage();

  }

  ?>

  這個(gè)新的類(lèi)是舊的exception 類(lèi)的副本,外加 errorMessage() 函數。正因為它是舊類(lèi)的副本,因此它從舊類(lèi)繼承了屬性和方法,我們可以使用 exception 類(lèi)的方法,比如 getLine() 、getFile() 以及 getMessage()。

  多個(gè)異常

  可以為一段腳本使用多個(gè)異常,來(lái)檢測多種情況。

  可以使用多個(gè)if..else 代碼塊,或一個(gè) switch 代碼塊,或者嵌套多個(gè)異常。這些異常能夠使用不同的 exception 類(lèi),并返回不同的錯誤消息:

  class customException extends Exception

  {

  public function errorMessage()

  {

  //error message

  $errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile()

  .': '.$this->getMessage().' is not a valid E-Mail address';

  return $errorMsg;

  }

  }

  $email = "someone@example.com";

  try

  {

  //check if

  if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)

  {

  //throw exception if email is not valid

  throw new customException($email);

  }

  //check for "example" in mail address

  if(strpos($email, "example") !== FALSE)

  {

  throw new Exception("$email is an example e-mail");

  }

  }

  catch (customException $e)

  {

  echo $e->errorMessage();

  }

  catch(Exception $e)

  {

  echo $e->getMessage();

  }

  ?>

  重新拋出異常

  有時(shí),當異常被拋出時(shí),您也許希望以不同于標準的方式對它進(jìn)行處理?梢栽谝粋(gè) "catch" 代碼塊中再次拋出異常。

  class customException extends Exception

  {

  public function errorMessage()

  {

  //error message

  $errorMsg = $this->getMessage().' is not a valid E-Mail address.';

  return $errorMsg;

  }

  }

  $email = "someone@example.com";

  try

  {

  try

  {

  //check for "example" in mail address

  if(strpos($email, "example") !== FALSE)

  {

  //throw exception if email is not valid

  throw new Exception($email); //拋出Exception異常

  }

  }

  catch(Exception $e) //捕獲Exception異常

  {

  //re-throw exception

  throw new customException($email); //拋出customException異常

  }

  }

  catch (customException $e) //捕獲customException異常

  {

  //display custom message

  echo $e->errorMessage();

  }

  ?>

  設置頂層異常處理器 (Top LevelException Handler)

  set_exception_handler() 函數可設置處理所有未捕獲異常的用戶(hù)定義函數。

  function myException($exception)

  {

  echo "Exception: " , $exception->getMessage();

  }

  set_exception_handler('myException');

  throw new Exception('Uncaught Exception occurred');

  ?>

  在上面的代碼中,不存在 "catch" 代碼塊,而是觸發(fā)頂層的異常處理程序。應該使用此函數來(lái)捕獲所有未被捕獲的異常。

  異常的規則

  ·需要進(jìn)行異常處理的代碼應該放入 try 代碼塊內,以便捕獲潛在的異常。

  ·每個(gè) try 或 throw 代碼塊必須至少擁有一個(gè)對應的 catch 代碼塊。

  ·使用多個(gè) catch 代碼塊可以捕獲不同種類(lèi)的異常。

  ·可以在 try 代碼塊內的 catch 代碼塊中再次拋出(re-thrown)異常。

  簡(jiǎn)而言之:如果拋出了異常,就必須捕獲它。

  七、PHP Include 文件

  服務(wù)器端包含 (SSI) 用于創(chuàng )建可在多個(gè)頁(yè)面重復使用的函數、頁(yè)眉、頁(yè)腳或元素。

  PHP include 和 require 語(yǔ)句

  通過(guò) include 或 require 語(yǔ)句,可以將 PHP 文件的內容插入另一個(gè) PHP 文件(在服務(wù)器執行它之前)。

  include 和 require 語(yǔ)句是相同的,除了錯誤處理方面:

  ·require 會(huì )生成致命錯誤(E_COMPILE_ERROR)并停止腳本

  ·include 只生成警告(E_WARNING),并且腳本會(huì )繼續

  語(yǔ)法

  include 'filename';

  或

  require 'filename';

  PHP include 實(shí)例

  例子 1

  假設我們有一個(gè)名為 "footer.php" 的標準的頁(yè)腳文件,就像這樣:

  echo "

  Copyright ? 2006-" . date("Y") . " W3School.com.cn

  ";

  ?>

  如需在一張頁(yè)面中引用這個(gè)頁(yè)腳文件,請使用 include 語(yǔ)句:

  歡迎訪(fǎng)問(wèn)我們的首頁(yè)!

  一段文本。

  一段文本。

  例子 2

  假設我們有一個(gè)名為 "menu.php" 的標準菜單文件:

  echo '首頁(yè) -

  HTML 教程 -

  CSS教程 -

  JavaScript 教程 -

  PHP 教程';

  ?>

  網(wǎng)站中的所有頁(yè)面均使用此菜單文件。具體的做法是(我們使用了一個(gè)

  元素,這樣今后就可以輕松地通過(guò) CSS 設置樣式):

  歡迎訪(fǎng)問(wèn)我的首頁(yè)!

  Some text.

  Some more text.

  例子 3

  假設我們有一個(gè)名為 "vars.php" 的文件,其中定義了一些變量:

  $color='銀色的';

  $car='奔馳轎車(chē)';

  ?>

  然后,如果我們引用這個(gè) "vars.php" 文件,就可以在調用文件中使用這些變量:

  歡迎訪(fǎng)問(wèn)我的首頁(yè)!

  include 'vars.php';

  echo "我有一輛" . $color . $car "。";

  ?>

  PHP include vs. require

  require 語(yǔ)句同樣用于向 PHP 代碼中引用文件。

  不過(guò),include與 require 有一個(gè)巨大的差異:如果用 include 語(yǔ)句引用某個(gè)文件并且 PHP無(wú)法找到它,腳本會(huì )繼續執行:

  如果我們使用 require 語(yǔ)句完成相同的案例,echo 語(yǔ)句不會(huì )繼續執行,因為在 require 語(yǔ)句返回嚴重錯誤之后腳本就會(huì )終止執行:

  注釋?zhuān)?/strong>

  請在此時(shí)使用 require:當文件被應用程序請求時(shí)。

  請在此時(shí)使用 include:當文件不是必需的,且應用程序在文件未找到時(shí)應該繼續運行時(shí)。

【php高級教程】相關(guān)文章:

PHP入門(mén)基礎教程大全10-28

有關(guān)語(yǔ)法和表單的PHP教程08-08

高級英語(yǔ)口語(yǔ)教程:This egg is for you01-11

高級英語(yǔ)口語(yǔ)教程:表示要加班10-02

PHP高級開(kāi)發(fā)工程師的具體職責(通用18篇)08-28

關(guān)于php面試寶典及PHP面試技巧08-16

PHP的壓縮函數06-21

調酒教程10-21

如何學(xué)好PHP知識09-20

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频