久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP基础(必须熟练掌握的基础)

發布時間:2023/12/4 php 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP基础(必须熟练掌握的基础) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<?php/*** 三元運算符的應用*/ /* $a = 10; $b = 15; echo $a > $b ? 1 : 0; */ // 注:php7新添加的運算符比較運算符x<=>y // 如果x和y相等,就返回0,如果x>y,就返回1,如果x的值小于y,就返回-1/* $a = "aaa"; $b = "bbb"; echo $a.$b; *//*** 預定義常量*//* class a {function showName(){echo __METHOD__;echo "<hr>";echo __FUNCTION__;echo "<hr>";echo __CLASS__;echo __FILE__;echo __DIR__;} } $b = new a(); $b->showName();*//*** switch分支語句*//* switch ($type) {case 1:echo "11";break;case 2:echo "12";break;default :echo "13";break; } *//*** while循環* 需要注意,while循環必須進行變量初始化*//* $i = 1; while ($i <= 10) {echo $i." ";$i++; } *//*** do while循環*/ /* $i = 0; do {$i++;echo $i." "; } while($i<10); *//*** for循環*/ /*for ($i = 0; $i < 10; $i++) {echo $i." "; }*//*** foreach循環*//* $arr = ['name'=>'xiaobudiu','age'=>25,'hobby'=> ['1' => 'hobby','2' => 'code'] ]; foreach ($arr as $k => $v){echo $k."=>".$v;echo " "; } *//*** 跳轉語句之goto (還有break,continue)* goto* goto a直接跳到a 中間部分的代碼不執行*//* goto a; echo 'kkk'; echo '123'; a: echo 'bbb'; echo '525'; */ //此部分代碼瀏覽器顯示為 //bbb525/*** goto跳轉語句*//* for($i = 0; $i < 10; $i++) {if($i == 3){goto a;}echo $i; } a: echo "跳出循環"; */ //瀏覽器顯示為 //012跳出循環/*** 引用傳遞*/ /* function test(&$a) {$a = $a + 1;return $a; }$x = 1; echo test($x); // 2 echo "<hr>"; echo $x; // 2 *//*** 函數的默認參數* 為了避免意外情況發生,一般,默認參數放在非默認參數的右側*/ /* function aa($a = 2, $b) {echo $a + $b; } aa(3,5); // 瀏覽器顯示8 // 這里,如果調用時aa(3)只給了一個參數,則會報錯 *//*** 可變參數變量* 參數可包含'...'來表示函數可接受一個可變數量的參數* 可變參數將會被當做一個數組傳遞給函數*/ /* function test(...$num) {$sum = 0;foreach ($num as $k => $value){$sum += $value;}return $sum; }echo test(1, 3, 4, 5); //結果1+3+4+5 = 13 *//*** return跳轉語句* return 本身只能返回一個值,不能返回數組,我們通過這種方法來實現返回數組,并在調用時用list接收* return之后的代碼不在執行,這里,echo "111"代碼執行不了,所以瀏覽器只返回了28 11*/ /* function aak($a, $b) {$sum = $a * $b;$sum2 = $a + $b;return array($sum, $sum2); } list($a1, $a2) = aak(4,7); echo $a1." ".$a2; //瀏覽器顯示 28 11 *//*** 使用get_loaded_extensions 我們來查看一下現在的php程序加載了哪些拓展*/ //var_dump(get_loaded_extensions());/*** 匿名函數(也叫閉包函數)* 允許臨時創建一個沒有指定名稱的函數,經常用作回調函數(callback)參數的值* 閉包函數也可以作為變量的值來使用(比如此例)*/ /* $greet = function ($name) {echo "hello,$name"; }; $greet('xiaobudiu'); //瀏覽器顯示 hello,xiaobudiu *//*** 遞歸思想* 斐波那契數列* 1,1,2,3,5,8...*$n表示第幾個數*/ /* function compute($n) {if ($n > 2) {return compute($n - 1) + compute($n - 2);} else {return 1;} } echo compute(7); *//*** 迭代思想* 利用變量的原值推算出變量的一個新值*/ /* function dieDai($n) {for ($i = 0 , $j = 0; $i < $n; $i++) {$j = $i + $j;}return $j; } echo dieDai(50); *//*** 單引號和雙引號*/ /* $str = "i dont't want to go shoping"; echo ucwords($str); *//*** 字符串替換*str_ireplace();str_replace()*/ /* $str = "hello,world,hello,world"; echo str_replace('or', 'dd', $str); $replace = 'hi'; echo substr_replace($str, $replace, 0, 7);//將第0到第7個字符替換成$replace字符 // 瀏覽器顯示hiorld,hello,world *//**** 截取字符串*/ /* $str = 'abcdefg'; echo substr($str,0,4); // 瀏覽器顯示:abcd *//*** 去掉字符串首尾特殊字符* trim();ltrim();rtrim()*/ /* $str = ' .abcded .gk.'; echo $str; echo "<hr>"; $str = trim($str); echo $str;//.abcded .gk.(空格去掉了) echo '<hr>'; $str = ltrim($str,'.');//abcded .gk.(左邊的點被去掉了) echo $str; echo '<hr>'; $str = rtrim($str,'.');//(右側的點被去掉了) echo $str; *//*** str_replace()*/ /* $str = 'hello,world,d,hello,world,ef'; //要求把第二個hello替換成hi echo str_replace('hello','hi',$str); */ //str_replace()單獨實現不了替換限制次數的需求,要替換,都替換,無法替換單獨一個/*** 對字符串執行指定次數替換* @param Mixed $search 查找目標值* @param Mixed $replace 替換值* @param Mixed $subject 執行替換的字符串/數組* @param Int $limit 允許替換的次數,默認為-1,不限次數* @return Mixed*/ /* function strReplaceLimit($search, $replace, $subject, $limit= -1) {if (is_array($search)) {foreach ($search as $k => $v) {$search[$k] = '`'. preg_quote($search[$k], '`'). '`';}} else {$search = '`'. preg_quote($search, '`'). '`';}return preg_replace($search, $replace, $subject, $limit); } $str = "abccddefccggcccg"; echo strReplaceLimit('cc', 'c',$str, 2); echo '<hr>'; */ // 瀏覽器顯示:abcddefcggcccg(前兩個cc都被替換了,最后一個ccc沒有被替換)/*** 截取字符串* substr*/ /* $str = "abcdefghijklmn"; echo substr($str,-4, 2); // kl *//** 計算字符串長度* str_len、mb_strlen*/ /* $str = "abcde我"; echo strlen($str); // 8 (中文3個字符,英文1個字符) echo mb_strlen($str, 'UTF8'); // 6 (中文、英文都算一個字符) *//*** 轉義和還原字符串* 轉義:addslashes() 還原:stripslashes* 兩個參數 第一個參數字符串,第二個參數要進行轉義的字符*/ /* $str = "I Don't wang to go shopping.."; $str = ucwords($str); echo $str;//I Don't Wang To Go Shopping.. echo "<hr>"; //$str = addslashes($str); $str = addcslashes($str,'.'); echo $str;//I Don't Wang To Go Shopping\.\. *//*** 重復字符串* str_repeat*/ /* $str = 'abcd'; echo str_repeat($str,2); *//*** 隨機打亂字符串* str_shuffle()*/ /* $str = "abcdefghijklmn"; echo str_shuffle($str); *//*** 分割字符串* explode()*/ /* $str = "piece1,piece2,piece3"; $str = explode(',',$str); var_dump($str); //array(3) { [0]=> string(6) "piece1" [1]=> string(6) "piece2" [2]=> string(6) "piece3" } echo "<hr>"; $str = implode('-',$str); echo $str; //piece1-piece2-piece3 *//*** 創建一個指定范圍的數組* range() 第三個參數step 步進值*/ /* $array = range('0', '9', 2); var_dump($array); //array(5) { [0]=> int(0) [1]=> int(2) [2]=> int(4) [3]=> int(6) [4]=> int(8) } *//*** 檢查數組中是否存在某個值* in_array*/ /* $arr = ['beijing', 'shanghai', 'hangzhou', 'shenzhen']; var_dump(in_array('hangzhou', $arr));//bool(true) *//*** 數組轉換成字符串* implode()*/ /* $array = ['beijing', 'shanghai', 'hangzhou', 'shenzhen']; $arrayStr = implode('-', $array); echo $arrayStr; // beijing-shanghai-hangzhou-shenzhen *//*** 計算數組中的單元數目* count()* 第二個參數可選,默認0,識別不了無限遞歸,1:可以識別無限遞歸* 此例中,輸出的count就是6*/ /* $array = ['beijing','shanghai'=>['pudong','jiaoda'],'hangzhou','shenzhen' ]; echo count($array); // 4 echo "<hr>"; echo count($array,1); // 6 *//*** 數組當前單元和指針* current(),next(),prev(),end(),reset()*/ /* $foods = ['banana', 'apple', 'orange']; var_dump(current($foods)); var_dump(next($foods));//將數組指針向后移動一位 var_dump(current($foods)); *//*** 數組中的鍵名和值* key() next()*//*** 檢查給定鍵名或索引是否存在于數組中* array_key_exits*//*** 獲取數組中鍵名* array_keys()*//*** 獲取數組中所有的值* array_values*/ /* $arr = ['12' => 'beijing','25' => 'shanghai','3' => 'hangzhou','4' => 'shenzhen' ]; var_dump(array_values($arr)); *//*** 搜索給定值返回鍵名 (存在多個返回第一個匹配元素的鍵)* array_search*/ /* $arr = ['0' => 'blue','2' => 'red','3' => 'green','5' => 'red' ]; var_dump(array_search('red', $arr)); // 2 *//*** 填補數組* array_pad()* pad_size:填補后數組的長度(若為負數,則填補到左側)* pad_value:填補的內容*/ /* $arr = ['0' => 'blue','2' => 'red','3' => 'green' ]; $arr = array_pad($arr, 6, 'orange'); var_dump($arr); *//*** 使用指定的鍵和值填充數組* array_fill_keys*/ /* $arr = ['banana', 'apple', 2, 5]; $arr = array_fill_keys($arr, ['hangzhou', 'shanghai', 'beijing']); echo "<pre>"; print_r($arr); print_r($arr['banana']); *//** 瀏覽器顯示Array ([banana] => Array([0] => hangzhou[1] => shanghai[2] => beijing)[apple] => Array([0] => hangzhou[1] => shanghai[2] => beijing)[2] => Array([0] => hangzhou[1] => shanghai[2] => beijing)[5] => Array([0] => hangzhou[1] => shanghai[2] => beijing)) *//*** 從數組中隨機取出一個或多個單元* array_rand* 注:返回隨機條目的一個或多個鍵*/ /* $array = ['0' => 'blue','2' => 'red','3' => 'green','4' => 'color' ]; $arrayTwo = array_rand($array, 3); var_dump($arrayTwo); *//*** 數組排序與打亂數組* sort()、asort()、shuffle()*/ /* $arr = range('a','z'); shuffle($arr); foreach($arr as $v){echo $v;echo " "; } *//*** 遍歷數組* for、foreach()、each()、list()*/$array = ['beijing', 'shanghai', 'guangzhou', 'hangzhou', 'shenzhen']; $arrayTwo = ['haerbin', 'zhengzhou' => 'henan', 'nanjing']; /* //for循環寫法 for($i = 0; $i < count($array); $i++){echo $array[$i];echo '<br>'; } echo "<hr>";//foreach寫法 foreach($arrayTwo as $v) {echo $v;echo ' '; } *//*** list() 將數組的值分給賦給變量**/ /* $array = ['beijing', 'shanghai', 'guangzhou', 'hangzhou', 'shenzhen']; list($a[1], $a[2], $a['x']) = $array; var_dump($a); *//*** 數組的拆分,拆分成n組,每組幾個元素* array_chunk()*/ /* $array = ['beijing', 'shanghai', 'guangzhou', 'hangzhou', 'shenzhen']; $array = array_chunk($array, 2, true); echo "<pre>"; print_r($array); *//*** 合并數組(不自動去重,如果需要去重結合array_unique()使用)* array_merge()*/ /* $array = ['beijing', 'shanghai', 'guangzhou', 'hangzhou', 'shenzhen']; $arrayTwo = ['haerbin', 'zhengzhou'=>'henan', 'nanjing', 'hangzhou']; $arr = array_merge($array, $arrayTwo); echo "<pre>"; print_r($arr); *//*** 增加刪除數組中的元素* array_shift() 可在數組開頭插入一個1或多個單元* array_unshift() 可將數組開頭的單元移除數組* array_push() 用來將一個或多個單元壓入數組的末尾(入棧)* array_pop() 可將數組的最后一個單元彈出(出棧)*//*** 從數組中取出一段* array_slice() 字符串 substr*/ /* $array = ['beijing', 'shanghai', 'guangzhou', 'hangzhou', 'shenzhen']; var_dump(array_slice($array, 2, 3, true)); //array(3) { [2]=> string(9) "guangzhou" [3]=> string(8) "hangzhou" [4]=> string(8) "shenzhen" } *//*** 把數組中的一部分去掉,并用其他值取代* array_splice()*/ /* $array = ['haerbin', 'zhengzhou' => 'henan', 'nanjing', 'hangzhou']; array_splice($array, 1, 2, 'code'); echo "<pre>"; var_dump($array); //array(3) { [0]=> string(7) "haerbin" [1]=> string(4) "code" [2]=> string(8) "hangzhou" } *//*** 系統預定義數組 $_SERVER $_GET $_POST*///var_dump($_SERVER); //var_dump($_POST); //var_dump($_GET); /* $name = $_POST['name']; $pass = $_POST['pass']; var_dump($_POST); *//*** 獲取通過post方式上傳文件的相關信息* $_FILES*/ /* session_start(); session_id(); var_dump(session_id()); echo "<hr>"; $_COOKIE['name'] = 'xiaobudiu'; $_COOKIE['pass'] = '56611'; echo "<pre>"; print_r($_COOKIE); setcookie('session_id',''); *//*** 獲取當前時間* time();*/ // var_dump(date('Y-m-d H:i:s', time()));/***取得日期時間信息* getdate()*/ /*$arr=getdate(); var_dump($arr);*/ /* array(11) {["seconds"]=>int(57)["minutes"]=>int(58)["hours"]=>int(18)["mday"]=>int(4)["wday"]=>int(4)["mon"]=>int(1)["year"]=>int(2018)["yday"]=>int(3)["weekday"]=>string(8) "Thursday"["month"]=>string(7) "January"[0]=>int(1515063537) } *//*** 常用時間處理**//*** 默認時區設置* date_default_timezone_set()*/ //date_default_timezone_set('PRC');/*** 計算兩個日期的時間差* 2017年1月4日20時28分30秒 2018年5月6日19時30分15秒* @param $hour_start int 起始小時 (這里填20)* @param $minutes_start int 起始分鐘數 (這里填28)* @param $seconds_start int 起始秒數 (這里填30)* @param $month_start int 起始月份 (這里填1)* @param $day_start int 起始日期(這里填4)* @param $year_start int 起始年份(這里填2017)* @param $hour_end* @param $minutes_end* @param $second_end* @param $month_end* @param $day_end* @param $year_end*/ /* function diff_time($year_start, $month_start, $day_start, $hour_start, $minutes_start, $seconds_start,$year_end, $month_end, $day_end, $hour_end, $minutes_end, $second_end) {//2016年1月1日19點30分0秒時間戳//$start = mktime(19,30,0,1,1,2016)$start = mktime($hour_start, $minutes_start, $seconds_start, $month_start, $day_start, $year_start);//2016年7月7日7點30分0秒時間戳//$end = mktime(7,30,0,7,7,2016);$end = mktime($hour_end, $minutes_end, $second_end, $month_end, $day_end, $year_end);//時間戳之差$diff_seconds = $end - $start;//一周的秒數是24*60*60*7=604800$diff_weeks = floor($diff_seconds / 604800);//一天的秒數是24*60*60=86400$diff_days = floor($diff_seconds / 86400);$diff_hours = floor($diff_seconds / 3600);$diff_minutes = floor($diff_seconds / 60);echo "兩個時間相差".":".$diff_weeks."個星期,".$diff_days."天,".$diff_hours."小時,".$diff_minutes."分,". $diff_seconds."秒"; } //示例: 2016年9月25日18時25分30秒 2017年1月4日20時36分15秒 diff_time(2016, 8, 25, 18, 25, 30, 2017, 1, 4, 20, 36, 15); *//*** 將具體時間日期轉化為時間戳*/ /* echo mktime(10,25,25,10,25,2016); echo "<hr>"; echo strtotime('20161025102525'); *//*** 求兩個日期的時間差* 求2016.9.4 10:32:33 與2017.1.4 21:22:23* @param $start int 起始日期 20160904103233* @param $end int 結束日期 20170104212223* 注:也可以不用strtotime,用mktime()去轉化時間戳,其他步驟一樣*/ /* function diff_time($start,$end) {$start = strtotime($start);$end = strtotime($end);//計算兩個時間的時間戳$diff_seconds = $end - $start;//求相差多少個星期$diff_weeks = floor($diff_seconds / (24 * 60 * 60 * 7));//求相差多少天$diff_days = floor($diff_seconds / (24 * 60 * 60));//求相差多少小時$diff_hours = floor($diff_seconds / (60 * 60));//求相差多少分$diff_minutes = floor($diff_seconds / 60);//輸出結果echo "兩個時間相差".":".$diff_weeks."個星期,".$diff_days."天,".$diff_hours."小時,".$diff_minutes."分,". $diff_seconds."秒"; } diff_time('20160904103233','20170104212223'); *//* $start = 'last Friday'; $time1 = strtotime("$start + 1days"); echo date('Y-m-d H:i:s',$time1); *//* $start = '20170430122531'; $end = '20180104224925'; //求兩個時間戳的差 $diff_time = strtotime($end) - strtotime($start); //求相差多少天 $diff_days = floor($diff_time/(24*60*60)); echo "兩個時間相差".$diff_days."天"; *//*** 驗證日期* checkdate()*/ //var_dump(checkdate(12,32,2016)); //bool(false)/*** 表單的種類*input文本域**//* var_dump($_POST); echo "<hr>"; var_dump($_FILES); *//*** 處理文件上傳* 在html頁面上傳文件到本方法所在php文件,在php文件中,調用方法即可(html頁面中type為file的input name值為file* 如果想更改,本方法中$_FILES['file']也要對應更改*///function upLoadFiles() //{ // if ($_FILES['file']['error'] > 0) { // echo "Error:".$_FILES['file']['error']."<br />"; // } else { // echo "<pre>"; // print_r($_FILES['file']); // //將臨時文件移動到永久文件 // //判斷文件是否是通過http post上傳的 // if(is_uploaded_file($_FILES['file']['tmp_name'])) { // $uploadFile = $_FILES['file']; // //獲取數組里的值 // $name = $uploadFile['name']; // $tmp_name = $uploadFile['tmp_name']; // //移動上傳文件到指定目錄(這里用絕對路徑,也可以用相對路徑,但要注意在文件夾前加上網站根目錄) // /* define('ROOT', dirname(__FILE__)); //E:\PHP\phpstudy\WWW\Project\kk // //對移動臨時文件是否成功做判斷 // if(!move_uploaded_file($tmp_name,ROOT."\Upload\\".$name)) { // echo "Error:移動文件失敗,請確認文件名全為英文"; // }*/ // if(@!move_uploaded_file($tmp_name,"E:\PHP\phpstudy\WWW\Project\kk\Upload\\".$name)){ // echo "Error:移動文件失敗,請確認文件名全為英文"; // } // // } // } // //} //upLoadFiles(); //var_dump(__FILE__); //var_dump(dirname(__FILE__));/*** Class myClass* 靜態屬性(類屬性)* 類內用self調用,類外使用類名調用*/ /* class myClass {static $staticVal = 10;function getStatic(){return self::$staticVal;} } echo myClass::$staticVal; echo "<hr>"; $a = new myClass(); var_dump($a->getStatic()); *//*** 靜態方法(類方法)**///class myClass //{ // static $staticVal = 10; // public $val = 100; // // /** // * 獲取類屬性(靜態屬性 $staticVal) // */ // static function getStaticVal() // { // echo self::$staticVal; // } // // /** // * 類內調用類屬性,并對類屬性進行改變 // */ // static function changeStaticVal() // { // self::$staticVal++; // echo self::$staticVal; // } //} // //myClass::getStaticVal();//10 //myClass::changeStaticVal();//11/*** 文件名操作* basename()*/ /* echo __FILE__; //E:\PHP\phpstudy\WWW\Project\kk\index.php echo "<hr>"; $a = basename(__FILE__,".php"); echo $a; //index *//*** 構造方法* 創建對象時自動調用的方法* __construct* 構造方法常用的場景是在創建對象時給變量賦值*///class yourClass //{ // // public $name; // public $age; // // /** // * yourClass constructor. // * 構造方法 // * 創建對象時自動調用此方法 // */ // function __construct($name,$age) // { // $this->name = $name; // $this->age = $age; // } // // /** // * 析構方法 // * __destruct // * 析構方法是在對象被銷毀前自動執行的方法 // */ // function __destruct() // { // // } //} //$a = new yourclass('xiaoming',25); //echo $a->name;/*** 封裝和繼承* public 任何地方都可以調用* protected 本類和子類中可以被調用* private 只有本類可以調用*//*** 封裝,就是將類中的成員屬性和方法內容細節盡量隱藏起來,確保類外部代碼不能隨意訪問類內內容*//*** 繼承* extends*//*** 多態* 多態,通過繼承,復用代碼實現 可編寫出健壯可擴展的的代碼 減少流程控制語句的使用* 在運行時,根據傳遞的對象參數,決定調用不用的方法*//*** 回顧函數總結:* 函數的三個特性:封裝,繼承,多態* 封裝:將函數的成員屬性成員方法內容細節盡可能隱藏起來,確保類外部代碼不能隨意訪問類中內容* 繼承:一個類作為公共基類,其他類繼承這個類,則其他類都具有這個類的屬性和方法* 多態:通過繼承復用代碼而實現 運行時根據傳遞的參數對象,決定調用哪一個對象的方法*//*** 魔術方法* php提供了內置的攔截器,他可以'發送'到未定義方法和屬性的消息* __set() __get() __isset() __unset() __call() __toString()**//*** __set()* 在代碼要給未定義的屬性賦值時調用,或在類外部修改被private修飾的類屬性時被調用* 它會傳遞兩個參數;屬性名和屬性值* 通過__set()方法也可以實現對private關鍵詞修飾的屬性值進行更改*//*** __get()* 當在類外部訪問被private或protected修飾的屬性或訪問一個類中原本不存在的屬性時被調用*//*** __isset()* 當在類外部對未定義的屬性或者非公有屬性使用isset()函數時,__isset()將會被調用*///注:結合 property_exists() property_exists()用來檢測類中是否定義了該屬性 //用法:property_exists('magic',$key) 檢測在magic類中是否定義了$key屬性/*** __unset()* 對類中未定義的屬性或非公有屬性進行unset()操作時,將會觸發__unset()方法.* 如果屬性存在,unset操作會銷毀這個屬性,釋放該屬性在內存中占用的空間* 再用對象訪問這個屬性時,將會返回NULL*//*** __call()* 當試圖調用不存在的方法時會觸發__call()* __call()有兩個參數,即方法名和參數,參數以索引形式存在*/ /* class magic {function __call($func,$param){echo "$func method not exists";var_dump($param);} } $obj = new magic(); $obj-> register('param1','param2','param3'); //實例化的對象調用不存在的register()方法 *//** 瀏覽器結果顯示:* register method not existsarray(3) {[0]=>string(6) "param1"[1]=>string(6) "param2"[2]=>string(6) "param3"}*//*** toString()* 當使用echo或print打印對象時會被調用__toString()方法將對象轉化為字符串*/ /* class magic {function __toString(){return 'when you want to echo or print the object, __toString() will be called';} }$obj = new magic(); print $obj; //瀏覽器顯示 when you want to echo or print the object, __toString() will be called *//*** 自動加載* __autoload()* 當在代碼嘗試加載未定義的類時會觸發__autoload()函數* 用法簡單示例:*/ //假設有兩個文件為myClass.php和yourClass.php,另外, 在同一目錄下寫一個autoload.php文件,代碼如下/* // myClass.php代碼class myClass {function myName(){echo "My Name Is xiaobudiu";} }// yourClass.php代碼 class yourClass {function yourName(){echo "Your Name Is pgone";} }// autoload.php代碼 function __autoload($name){if(file_exists($name.".php")){$path = $name . 'php';require_once $path;}else{echo "The Path Is Error";} } $my = new myClass(); $my -> myName(); $your = new yourClass(); $your -> yourName(); *//*** 自動加載* spl_autoload_register(),和__autoload()方法功能相似,實現自動加載二選其一即可* 可以實現自動加載以及注冊給定的函數作為__autoload()的實現* 兩個參數 第一個參數autoload_function為要注冊的自動裝載函數,第二個參數throw為布爾值,true為默認,拋出異常;false不拋出異常* 實例:假設當前目錄下存在myClass.php和yourClass.php,并且代碼和上面一樣,autoload.php代碼進行更改*/ /* function my_autoloader($class) {include $class.'.php'; } spl_autoload_register('my_autoloader'); $my = new myClass(); $my->myName(); $your = new yourClass(); $your->yourName(); //此時運行autoload.php 執行結果 My Name Is xiaobudiu Your Name Is pgone *//*** 抽象類* abstract* 一種對下級代碼的規范* 抽象類和接口都是不能被實例化的特殊類* 可以在抽象類和接口中保留公共的方法,將抽象類和接口作為公共的基類* 一個抽象類必須至少包含一個抽象方法,抽象類中的方法不能被定義為私有的(private),因為抽象類中的方法需要被子類覆蓋* 同樣抽象類中的方法也不能用final修飾,因為其需要被子類繼承* 抽象類中的抽象方法不包括方法實體.如果一個類中包含了一個抽象方法,那么這個類也必須聲明為抽象類* 抽象方法不實現具體的功能,由子類來完成* 子類必須實現抽象類中的所有方法,否則會報錯* 語法: abstract class class_name {abstract public function func_name1(arg1, arg2);abstract public function func_name2(arg1, arg2, arg3); }**///示例:計算矩形的周長/* abstract class Shape {abstract protected function get_area(); }class Rectangle extends Shape {private $width;private $height;function __construct($width = 0, $height = 0){$this->width = $width;$this->height = $height;}function get_area(){echo ($this->width + $this->height) * 2;} } $Shape_Rect = new Rectangle(20, 10); $Shape_Rect->get_area(); *//*** 接口* interface* 一種對下級代碼的規范* 與抽象類不同,一個子類可以繼承自多個接口,接口之間用','隔開,* 接口實現了php的多重繼承* 接口需要被繼承,所以接口中定義的方法不能為私有方法或被final修飾* 接口中定義的全部方法都必須被子類實現,并且不能包含實體**/ //示例:定義database接口 /* interface Database {function connect($host, $username, $pwd, $db);function query($sql);function fetch();function close();function test(); }class mysql implements Database {protected $conn;protected $query;function connect($host, $username, $pwd, $db){$this->conn = new mysqli($host,$username,$pwd,$db);}function query($sql){return $this->conn->query($sql);}function fetch(){return $this->query->fetch();}function close(){$this->conn->close();}function test(){echo "test";} } *///類中的關鍵字/*** final* 子類可覆寫父類中的方法,但是在有些時候并不希望父類中的方法被重寫,這時只要在父類中的方法前加上final控制符,* 該方法便不能被子類重寫,否則會報錯*///錯誤示范: /* class father {final function test(){echo "My Name Is xiaobudiu";} }class son extends father {function test(){echo "My Name Is PGone";} } */ //執行程序,瀏覽器會報錯 Fatal error: Cannot override final method father::test()/*** clone* 可通過clone關鍵字克隆一個對象,克隆后的對象相當于在內存中重新開辟了一個空間* 克隆得到的對象擁有和原來對象相同的屬性和方法* 修改克隆得到的對象不會影響到原來的對象*/ //示例: /* class father {public $name = 'xiaobudiu';function test(){echo "test";} } $obj = new father(); $obj_clone = clone $obj; $obj_clone->name = 'PGone'; echo $obj_clone->name; //PGone echo $obj->name //xiaobudiu */// 如果使用"="將一個對象賦給一個變量,那么得到的將是一個對象得引用,通過這個變量改變屬性的值將會影響原來的對象 // 示例: /* class father {public $name = 'xiaobudiu';function test(){echo "test";} } $obj = new father(); $obj_clone = $obj; $obj_clone->name = 'PGone'; echo $obj->name,$obj_clone->name; // PGonePGone *//*** __clone()* 可以使用__clone()魔術方法將克隆后的副本初始化* 可以理解為當對象被克隆時自動調用這個方法*///示例: /* class father {public $name = 'xiaobudiu';function test(){echo "test";}function __clone(){echo "hi,shuaige";$this->name = 'PGone';//當克隆對象時,克隆后的對象得到的將是此處的name屬性值} } $obj = new father(); $obj_clone = clone $obj; //觸發__clone()方法 //hi,shuaige echo $obj->name,$obj_clone->name;//xiaobudiuPGone *//*** instanceof關鍵字* instanceof可以檢測對象屬于哪個類* 也可以用于檢測生成實例的類是否繼承自某個接口*/ //示例: /* class father {public $name = 'xiaobudiu';function test(){echo "test";} }interface Database {function test(); }class mysql implements Database {function test(){echo "test";} }$obj = new father(); $mysql = new mysql(); var_dump($obj instanceof father); var_dump($mysql instanceof Database); var_dump($obj instanceof Database); //bool(true) bool(true) bool(false) *//*** 正則表達式* php中有兩套函數庫支持正則表達式* PCRE(Perl Compatible Regular Expression)庫提供,與Perl語言兼容的正則表達式函數,以"preg_"為函數的前綴名稱* POSIX(Portable Operating System Interface)擴展語法正則表達式函數,以"ereg_"為函數的前綴名稱* PCRE的執行效率高于POSIX*//*** 普通字符* 如 'A','B','C'等*//*** 元字符* 分為單字元字符和多字元字符* 如;\d 與數字字符相匹配*//*單字符元字符 //* 零次或多次匹配前面的字符或表達式 zo* 與"z"和"zoo"匹配 {0,} //+ 一次或多次匹配前面的字符或表達式 zo+ 與"zo"和"zoo"匹配,但與"z"不匹配 {1,} //? 零次或一次匹配前面的字符或表達式 zo? 與"z"和"zo"匹配,但與"zoo"不匹配 {0,1} //^ 匹配搜索字符串開始的位置 ^\d{3} 與搜索字符串開始處的3個數字匹配 //^ 如果將^用作括號表達式的第一個字符,就會對字符集求反 比如: [^abc] 匹配除abc以外的任何字符 //$ 匹配搜索字符串結尾的位置 \d{3}$ 與搜索字符串結尾處的3個數字匹配 //. 匹配除換行符\n之外的任何單個字符 a.c與"abc","alc"和"a-c"匹配 //. 若要匹配包括\n在內的任意字符,可以使用[\s\S]之類的模式(\s \S屬于'非打印字符') //[] 標記括號表達式的開始和結尾 [1-4]與"1","2","3","4"匹配 [^aeiouAEIOU]與任何非元音字符匹配 //{} 標記限定符表達式的開始和結尾 a{2,3}與"aa"和"aaa"匹配 //() 標記子表達式的開始和結尾,可以保存子表達式,以備將來之用 A(\d)與"A0"至"A9"匹配 //| 指示在兩個或多個選項之間進行選擇 z|food 與"z"或"food"匹配; (z|f)ood與"zood"或"food"匹配 /// 表示JScript中的文本正則表達式模式的開始或結尾.在第二個"/"后添加單字符標志可以指定搜索行為 /// /abc/gi 是與"abc"匹配的JScript文本正則表達式.g(全局)標志指定查找模式的所有匹配項,i(忽略大小寫)標志使搜索不區分大小寫 //\ 轉義字符 \\與"\"匹配, \(與"("匹配, \n與換行符匹配 */ /*多字符元字符 \b 與一個字邊界匹配(即字與空格間的位置) er\b與"never"中的"er"匹配,但與"verb"中的"er"不匹配 \B 與非邊界字匹配 er\B與"verb"中的er匹配,但與"never"中的er不匹配 \d 與數字字符匹配,等效于[0-9] \d{2}與"12 345"中的"12"和"34"匹配 \D 與非數字匹配,等效于[^0-9] \D+與"abc123 def"中的'abc"和"def"匹配 \w 與a-z,A-Z,0-9,和下劃線中的任意字符匹配 在"my name is xiaobudiu..."中,\w與"my","name","is","xiaobudiu"匹配 \W 與除a-z,A-Z,0-9,和下劃線中的任意字符匹配 等效于[^a-zA-Z0-9] [xyz] 字符集,與任何一個指定字符匹配 [abc]與"plane"中的a匹配 [^xyz] 反向字符集,與未指定的任何字符匹配 [a-z] 字符范圍,匹配指定范圍內的任何字符 [^a-z] 反向字符范圍,與不在指定范圍內的任何字符匹配 {n} 正好匹配n次,n是非負整數 o{2}與'Bob'中的"o"不匹配,但與"food"中的"oo"匹配 {n,} 至少匹配n次,n是非負整數 o{2,}與'Bob'中的'o'不匹配,但與"fooood"中的所有"o"匹配 {n,m} 匹配至少n次,至多m次 在搜索字符串"1234567"中,\d{1,3}與"123","456"和"7"匹配 (模式) 與模式匹配并保存匹配項 (Chapter|Section) [1-9]與"Chapter 5"匹配,保存"Chapter"以備將來之用 (?:模式) 與模式匹配,但不保存匹配項以備將來之用 industr(?:y|ies)與industry|industries相等 *//*非打印字符 \f 換頁符 \n 換行符 \r 回車符 \t Tab字符 \v 垂直制表符 \s 任何空白字符,包括空格,制表符,換頁符 等效于[\f\n\r\t\v] \S 任何非空白字符 等效于[^\f\n\r\t\v] */#--------------------------- 正則表達式正式部分 ------------------------------------- /*** php中使用正則表達式** 匹配與查找* preg_match()* preg_match_all()* preg_grep()** 搜索與替換* preg_replace()* preg_filter()** 分割與轉義* preg_split()* preg_quote()*//*** 匹配與查找* preg_match* 返回int* 語法: preg_match($pattern,$subject [array & $matches[,$flags=0 [,$offset=0]]])* pattern是要搜索的模式,例如'/^def/';* subject是指定的被搜索的字符串* 它的值是0或1,在匹配一次后就會停止搜索*//* $subject = "abcdefghijkdef"; $pattern_1 = '/def/'; $num = preg_match($pattern_1, $subject); var_dump($num); */ // int(1)/*** 匹配與查找* preg_match_all()函數* 返回int* 與preg_match功能相似,只不過在搜索到一次結果之后會繼續搜索,知道末尾*//*** 匹配與查找* preg_grep()函數* 返回array* 可返回匹配模式的數組條目*/ /* //代碼示例: $subject = ['abc', 'def', 'efg', 'hijk', 'abcdef', 'defabc']; $pattern = '/def$/'; $grep_1 = preg_grep($pattern,$subject);//返回與$pattern匹配的元素組成的數組 var_dump($grep_1); $grep_2 = preg_grep($pattern, $subject, PREG_GREP_INVERT);//返回與$pattern不匹配的元素組成的數組 var_dump($grep_2); *//* //瀏覽器顯示:array(2) {[1]=>string(3) "def"[4]=>string(6) "abcdef" } array(4) {[0]=>string(3) "abc"[2]=>string(3) "efg"[3]=>string(4) "hijk"[5]=>string(6) "defabc" } *//*** 搜索與替換* preg_replace()* 返回替換之后的字符串* 三個參數,第一個參數:$pattern 搜索模式(規則) 可以是一個字符串或字符串數組* 第二個參數:$replacement 用于替換的字符串或字符串數組* 第三個參數:$subject 要進行搜索和替換的字符串或字符串數組* limit 每個模式在每個subject上進行替換的最大次數 默認-1(無限)* count 如果指定,就會被填充為完成的替換次數*/ /* $string_1 = 'lily likes apple,no reason'; $pattern_1 = ['/lily/','/likes/','/apple/']; $replacement_1 = ['tom','hates','orange']; echo preg_replace($pattern_1,$replacement_1,$string_1); //tom hates orange,no reason $arr = ['lily likes apple,no reason','Tom hates orange,no reason']; $pattern_2 = ['/no/','/reason/']; $replacement_2 = ['why','?']; var_dump(preg_replace($pattern_2,$replacement_2,$arr)); //array(2) { [0]=> string(22) "lily likes apple,why ?" [1]=> string(22) "Tom hates orange,why ?" } *//*** 搜索與替換* preg_filter()* 與preg_replace()功能相似* preg_filter()只返回執行替換的元素(替換后的)(沒執行替換的不返回)* 而preg_replace()返回全部元素(替換后的)(替沒替換都返回)*//*** 分割* preg_split* 通過一個正則表達式分割字符串* array preg_split($pattern $subject[,$limit=-1 [,$flag=0]])* $patern 用于搜索的模式(規則)* $subject 輸入字符串* $limit 如果指定,就將限制分隔得到的子串最多只有limit個,返回的最后一個子串將包含所有剩余部分 limit為-1,0,null時都代表不限制*/ //示例://$subject = "I LIKE APPLE,AND YOU"; //$patern = '/[\s,]+/'; //var_dump(preg_split($patern,$subject));/*array(5) {[0]=>string(1) "I"[1]=>string(4) "LIKE"[2]=>string(5) "APPLE"[3]=>string(3) "AND"[4]=>string(3) "YOU" }*//*** 轉義* preg_quote()* 函數轉義正則表達式* preg_quote($str [,$delimiter])* $str 函數會向字符串中的每一個特殊字符前增加一個反斜線* 如果指定了$delimiter,則在指定的$delimiter前也加反斜線* 正則表達式特殊字符包括 . \ + * ? [ ? ] $ ( ) { } = ! < > | : -*/ //示例: /* $keywords = "$40 for \a g3/400*10/x"; $keywords = preg_quote($keywords,'x'); echo $keywords; //\$40 for \\a g3/400\*10/\x *//*** 異常處理* php自帶的Exception異常類*//*error_reporting(0);//設置錯誤級別為0,不報錯 function theDatabaseObj() {$mysql = mysqli_connect('127.0.0.1','root2','root');if($mysql){return $mysql;}else{throw new Exception("could't connect to the database,try again");}}function db(){try{$db = theDatabaseObj();var_dump($db);}catch (Exception $e){echo $e->getMessage(); // echo $e->getCode(); // echo $e->getLine();} }db();*//*** 創建自己的異常類**/ /*class aException extends Exception {function aEX(){return "This is the bad way";} } class aaa {function a(){if (2 < 1) {echo "wrong";} else {throw new aException('你錯了,太笨了le');}}function b(){try{$b = $this->a();var_dump($b);}catch (Exception $E) {echo $E->getMessage();}} }$obj = new aaa(); $obj->b();*///實現的功能,調用exception異常處理 /* function aaa() {if($_GET['name'] == 'xiaobudiu') {return "尊貴的管理員,請登錄";} else {throw new Exception('你沒有權限登錄');} }function upload() {try {$upload = aaa();var_dump($upload);} catch (Exception $e) {echo $e->getMessage();} } upload();*//**.* php7中的錯誤處理* 大多數錯誤開始被當做Error異常拋出,而不是Exception異常* catch($Error $e)*/ /*try {$a = new zoo(); } catch (Error $E) {echo "error_msg:".$E->getMessage(); }*/ //error_msg:Class 'zoo' not found //注:這種Error異常處理方式只適用于php7,php5版本還是要用Exception異常類來處理錯誤及異常#-------------------------------- 圖像處理 ------------------------------------- /*** 圖像處理* 圖像處理要求GD庫*/ //使用函數查看一下當前安裝沒有GD庫 //echo "<pre>"; //var_dump(get_loaded_extensions());/*** 取得圖像大小* getimagesize()* 返回圖像的尺寸以及文件類型*/ //print_r(getimagesize('./Upload/IGS09651F94M.jpg'));/*瀏覽器結果 Array ([0] => 740 //寬度像素值[1] => 1166 //高度像素值[2] => 2 //圖像標記,gif是1,jpg是2,png是3,swf是4,psd是5....[3] => width="740" height="1166" //文本字符串[bits] => 8 //每種顏色的位數[channels] => 3 //RGB圖像是3,CMVK圖像是4[mime] => image/jpeg )*//*** getimagesizefromstring()* 從字符串中獲取圖像尺寸信息* 與getimagesize()函數的參數和返回結果相同,區別是getimagesizefromstring()的第一個參數是圖像數據的字符串表達,而不是文件名*/ //$img = file_get_contents('./Upload/IGS09651F94M.jpg'); //var_dump(getimagesizefromstring($img));/*瀏覽器結果:array(7) {[0]=>int(740)[1]=>int(1166)[2]=>int(2)[3]=>string(25) "width="740" height="1166""["bits"]=>int(8)["channels"]=>int(3)["mime"]=>string(10) "image/jpeg" }*//*** imagesx,imagesy* 取得圖像的寬度和高度*/ /*$img = imagecreatetruecolor(300,200); echo imagesx($img);//300 echo imagesy($img);//200*//*** 圖像繪制* imagecreate(),可創建一個基于調色板的圖像* 與imagecreateturecolor()作用和參數相同* 返回一個圖像標識符,代表了一幅大小為x_size和y_size的空白圖像* 1.創建畫布* 2.在畫布上繪制圖形* 3.保存并輸出結果圖像* 4.銷毀圖像資源*//* //創建一個空白畫布,并輸出一個png格式的圖片 header("Content-type:image/png");//設置mime類型 $image = @imagecreate(120,30) or die("Cannot Initialize new GD image stream"); //創建畫布$background_color = imagecolorallocate($image,255,255,0);//定義顏色imagepng($image);//輸出png格式圖像imagedestroy($image);//銷毀圖像資源,釋放內存 *//*** 定義顏色* imagecolorallocate()* 給圖像的邊框背景和文字等元素指定顏色* 返回一個標識符,代表由給定的RGB成分組成的顏色* 與imagecolorallocate()功能相似的第一個函數是imagecolorallocatealpha(),區別在于后者多了一個透明度參數0-127 127表示完全透明*//*** 繪制橢圓* imageellipse()*/ //新建一個空白的圖像 /* $image = imagecreatetruecolor(400,300); //填充背景色 $bg = imagecolorallocate($image,255,255,255); //選擇橢圓的顏色 $col_ellipse = imagecolorallocate($image,55,55,255); //畫一個橢圓 imageellipse($image,200,150,300,200,$col_ellipse); //輸出圖像 header("Content-type:image/png"); imagepng($image); *//*** 將文字寫入圖像* imagefttext()*///echo "<img src=code.php>";//生成圖片#--------------------------------- 目錄文件操作 -------------------------------------- /*** 判斷文件類型* filetype()* 返回文件的類型.可能值有fifo,char,dir,block,link,file和unknown,出錯返回false*/ //echo filetype('code.php');//file //echo filetype('./Public');//filedir/*** 判斷是否是一個目錄* is_dir()*/ //var_dump(is_dir('Upload'));//bool(true) //var_dump(is_dir('index.php'));//bool(false) //var_dump(is_dir('Upload/aa.jpg'));//bool(false)/*** 創建目錄* mkdir()* 創建成功返回true recursive值為true時,表示允許遞歸創建目錄*/ /*/ error_reporting(0); function mkd($name) {if (file_exists($name)) {echo "file already exists";} else {try {mkdir($name,0777,true);echo "創建成功";} catch (Exception $e) {throw new Exception('創建目錄失敗,請核查后重試');}} } mkd('./aa/bb'); *//*** 刪除目錄* rmdir* 嘗試刪除dir所指定的目錄.該目錄必須為空,并且要擁有相應權限*/ /* error_reporting(0); $dir = './aa/bb'; if (rmdir($dir)) {echo "Remove Dir Successfuly"; } else {die('failes to delete folders...'); } // 注:只能刪除一個文件夾,例如$dir中的'./aa/bb',就只刪除了一個bb文件夾,aa仍在 *//*** scandir* 列出指定路徑中的文件和目錄* 第二個參數shorting可選,設為1,即按字母降序,默認升序**/ //$dir = './'; //$dir1 = scandir($dir,1); //var_dump($dir1); /* array(16) {[0]=>string(9) "test.html"[1]=>string(11) "option.html"[2]=>string(11) "indexx.html"[3]=>string(9) "index.php"[4]=>string(5) "index"[5]=>string(11) "favicon.ico"[6]=>string(8) "code.php"[7]=>string(2) "aa"[8]=>string(6) "Upload"[9]=>string(6) "Public"[10]=>string(5) "2.css"[11]=>string(5) "1.php"[12]=>string(5) "1.css"[13]=>string(5) ".idea"[14]=>string(2) ".."[15]=>string(1) "." }*//*** dirname()* 返回路徑中的目錄部分*/ //echo dirname('./Public/favicon.ico'); // ./Public/*** 查看磁盤空間* disk_free_space(); 返回磁盤分區可用字節數* disk_total_space();返回磁盤分區總容量*///echo disk_total_space('/');//191392714752/*** 打開文件* fopen()* 有參數r,r+,w,w+,a,a+,x,x+,c,c+*//*** 讀取文件* fgets()* 第一個參數表示資源* 第二個參數表示讀取多少字節,默認1kb(1024字節)*/ /* $file = fopen("code.php", "r"); //輸出文本中所有的行,直到文件結束為止。 //feof() 函數檢測是否已到達文件末尾 (eof)。 //如果文件指針到了 EOF 或者出錯時則返回 TRUE,否則返回一個錯誤(包括 socket 超時),其它情況則返回 FALSE while(! feof($file)) {echo fgets($file). "<br />"; }fclose($file); */ /* //要求:讀取code.php中所有行數內容 //打開文件 $file = fopen('code.php',"r"); //讀取文件 while(!feof($file)){//只要不讀到末尾,就輸出本行echo fgets($file)."<br>"; } fclose($file); *//*** 獲取文件上次訪問的時間* fileatime()*/ /* $file = 'code.php'; if(file_exists($file)){echo $file."上次訪問的時間是".date("Y-m-d H:i:s",fileatime($file)); }else{echo "您所訪問的文件不存在,請核查后重新操作"; } //code.php上次訪問的時間是2018-01-08 00:17:28 *//*** 獲取文件上次被修改的時間* filemtime()*/ /* $file = "code.php"; if(file_exists($file)) {echo $file."上次修改的時間為".date("Y-m-d H:i:s", filemtime($file)); } else {echo "您所訪問的文件不存在,請核查后重新操作"; } //code.php上次修改的時間為2018-01-08 00:17:28 *//*** filesize()*獲取文件的大小* 返回文件大小的字節數*/ //echo filesize('./code.php');//1937/*** filetype()* 返回文件的類型*/ //echo filetype('./code.php');//file/*** stat()* 給出文件的詳細信息* 能返回上次訪問,上次修改,文件大小等各種信息*/ //var_dump(stat("./code.php")); /*array(26) {[0]=>int(4)[1]=>int(0)[2]=>int(33206)[3]=>int(1)[4]=>int(0)[5]=>int(0)[6]=>int(4)[7]=>int(1937)[8]=>int(1515341848)[9]=>int(1515341848)[10]=>int(1515334800)[11]=>int(-1)[12]=>int(-1)["dev"]=>int(4)["ino"]=>int(0)["mode"]=>int(33206)["nlink"]=>int(1)["uid"]=>int(0)["gid"]=>int(0)["rdev"]=>int(4)["size"]=>int(1937)["atime"]=>int(1515341848)["mtime"]=>int(1515341848)["ctime"]=>int(1515334800)["blksize"]=>int(-1)*//*** 復制文件* copy()* 第一個參數是resource,第二個參數dist表示復制到哪里*/ /* $file = './code.php'; $newfile = 'aa/code2.php'; if (copy($file,$newfile)) {echo "復制文件".$file."到".$newfile."成功"; } else {echo "復制文件".$file."失敗"; } *//*** 刪除文件* unlink()*/ /* $file = './aa/code2.php'; if(unlink($file)){echo "刪除文件".$file."成功"; }else{echo "刪除文件失敗"; } *//***移動或重命名文件* rename()*/ /* error_reporting(0); if(rename('2.php','1.php')) {echo "文件重命名成功"; } else {echo "Rename Failed"; } *//*** 文件指針* 可以實現文件指針的定位和 查詢,從而實現所需信息的快速查詢* rewind() 將文件位置指針設為文件流的開頭* fseek() 在文件指針中定位* ftell() 返回文件指針讀寫的位置*/ /* $file = "./code.php"; $file = fopen($file,"r"); echo ftell($file); */#------------------------------ COOKIE 及 SESSION ------------------------------------- /*** COOKIE* 一種存儲在客戶端的數據,能存儲cookie的客戶端不只是瀏覽器,但絕大多數都是由瀏覽器來實現的* 瀏覽器通過HTTP協議和服務端進行Cookie交互* 在實現過程中,編程語言是通過指令通知瀏覽器,然后是瀏覽器實現設置Cookie的功能的* 讀取cookie則是通過瀏覽器請求服務端時攜帶的HTTP頭部中的Cookie信息得來的*//*** 設置cookie* setcookie()* 第一個參數name是必選參數,表示cookie名稱* 第二個參數可選,value表示值* 第三個參數可選,expire表示cookie的有效時間,以秒為單位,不設置此值,瀏覽器關閉,cookie隨之失效* 第四個參數可選,path,設置有效目錄,設置為'/'表示當前目錄下均可用,設置為'/aa'表示只有aa目錄下可用* 第五個參數可選,domain,設置cookie的作用域名,默認在本域名下有效,比如設置為example.com表示在example域名下的所有子域名都有效* 第六個參數可選,secure,用來設置是否對Cookie進行加密傳輸,默認false,如果設置為true,則只有使用https時候才會設置Cookie* 第七個參數為true表示只能通過HTTP協議才能訪問Cookie,意味著客戶端javascipt不可以操作這個cookie,使用此參數可減少xss攻擊的風險* 注:php和javascript都可以設置cookie,不同的是,php設置的cookie需要刷新頁面后的下一次請求中才有效,而javascript設置的cookie在本次請求中就有效*//*** cookie經常用來存儲一些不敏感的信息,如用來防止刷票,記錄用戶名,限制重復提交等* 示例:限制重復提交* 原理:當用戶第一次提交表單時,設置cookie有效時間1分鐘,當再次提交時,判斷cookie是否過期來限制用戶的提交*//*** Session設置* $_SESSION[key] = value* Session存儲在服務器,本質上和Cookie沒有區別,都是針對HTTP協議的局限性而提出的一種保持客戶端和服務端間會話狀態的機制.**/ //開啟session會話 /* session_start(); //設置session $_SESSION['name'] = 'xiaobudiu'; session_id(); var_dump($_SESSION); echo "<hr>"; var_dump($_COOKIE); *///var_dump(get_loaded_extensions()); /*** 使用Redis存儲Session* 對于大訪問量的網站來說,會有許多客戶端和服務端建立連接,就會生成許多session文件,由于session文件是存儲在硬盤上的,因此每次* 服務器去讀取這些session文件都要經過許多I/O操作.* PHP可以使用session_set_save_handle()函數自定義session保存函數(如打開,關閉,寫入,讀取等),如果想使用php內置的會話機制之外的方式,* 可以使用本函數.例如,可以自定義會話存儲函數來將會話數據存儲到數據庫.函數參數說明如下:**/#--------------------------- Mysql數據庫的使用 ------------------------------------ /*** 關系型數據庫,數據以表格的形式出現* 每行為各種記錄名稱* 每列為記錄名稱所對應的數據域,許多的行和列構成一張數據表,許多的表構成一個數據庫**//*** MYSQLi連接操作數據庫**/ /*** Mysqli執行插入數據操作**/ /* $db = new mysqli('localhost','root','root','test'); $sql = "insert into `user` (`username`,`email`) VALUES (?,?)"; //定義參數 $username = "xiaobudiu"; $email = "xiaobudiu163@126.com"; //預處理 $sm = $db->prepare($sql); //綁定參數 $sm->bind_param('ss',$username,$email); //執行語句 if($sm->execute()) {echo "Insert Successfully"; } $db->close(); *//***MYSQLi查詢數據*/ /* $db = new mysqli('localhost','root','root','test'); $sql = "select * from user where uid<4"; $re = $db->query($sql); echo "<pre>"; while($arr = $re->fetch_assoc()) {var_dump($arr); } //釋放查詢結果 $re->free(); //斷開數據庫連接 $db->close(); */ /*array(3) {["uid"]=>string(1) "1"["username"]=>string(4) "kate"["email"]=>string(12) "kate@126.com" } array(3) {["uid"]=>string(1) "2"["username"]=>string(5) "admin"["email"]=>string(12) "admin@qq.com" } array(3) {["uid"]=>string(1) "3"["username"]=>string(4) "mary"["email"]=>string(14) "mary@itcast.cn" }*//*** pdo連接操作mysql數據庫*/ /* $dsn = 'mysql:dbname=test;host=127.0.0.1'; $user = 'root'; $pass = 'root'; try {$pdo = new PDO($dsn,$user,$pass); // var_dump($pdo); } catch (PDOException $e) {echo "Connection failed:".$e->getMessage(); } */ /* //向數據表中插入數據 $dsn='mysql:dbname=test;host=127.0.0.1'; $user = 'root'; $pass = 'root'; //實例化pdo對象,連接數據庫 $pdo = new PDO($dsn,$user,$pass); //向數據庫插入數據 $sql = "insert into user (`username`,`email`) VALUES ('xiaowangba','sandjdsa@163.com')"; $re = $pdo->exec($sql); if ($re) {echo "向數據庫插入數據成功"; } else {var_dump($pdo->errorInfo()); } *//*** 修改數據表數據*/ /* $dsn='mysql:dbname=test;host=localhost'; $user = 'root'; $pass = 'root'; $pdo = new PDO($dsn,$user,$pass); $sql = "update user set username='wangxiaoping' where uid=8"; if ($pdo->exec($sql)) {echo "修改數據成功"; } else {echo "<pre>";var_dump($pdo->errorInfo()); } *//*** 刪除數據表中的數據**/ /* $dsn='mysql:dbname=test;host=127.0.0.1'; $user = 'root'; $pass = 'root'; $pdo = new PDO($dsn,$user,$pass); $sql = "delete from user where uid=7"; if ($pdo->exec($sql)) {echo "刪除數據成功"; } else {var_dump($pdo->errorInfo()); } *//*** 查詢數據表*/ /** $dsn='mysql:dbname=test;host=localhost'; $user = 'root'; $pass = 'root'; $pdo = new PDO($dsn,$user,$pass); $sql = "select `username`,`email` from user where `uid` BETWEEN 2 AND 8"; //預處理 $re = $pdo->prepare($sql); $re->execute(); $arrs = $re->fetchAll(); echo "<pre>"; var_dump($arrs);*/#------------------------------------------- PHP 與 Redis ------------------------------------------ /*** 關系型數據庫能滿足編程中一般的存儲查詢需求,隨著網站業務量的增加,我們還需要存儲許多數據,并且要求能夠很快的將數據查詢出來,這時,關系型數據庫mysql* 就會稍顯吃力.* 當網站用戶并發性非常高(高并發讀寫往往達到每秒上萬次請求)時,對于傳統關系型數據庫來說,硬盤I/O是一個很大的瓶頸,因為mysql的數據存儲是寫入磁盤上的.* 同時,網站每天產生的數據量是巨大的,對于關系型數據庫來說,在一張包含海量數據表中查詢效率也是非常低的* 針對關系型數據庫的不足,出現了很多NOSQL產品,這些數據庫中很大一部分都是針對某些特定應用需求出現的,對于該類應用具有極高性能,依據結構化方法以及應用* 場合不同,主要分為以下幾類:* 面向高性能并發讀寫的key-value數據庫,主要特點是具有極高的并發讀寫性能.Redis,TokyoCabinet,Flare是這類數據庫的代表* 面向海量數據訪問的面向文檔數據庫,這類數據庫的特點是可以在海量的數據中快速查詢數據,典型代表為MongoDB和CouchDB* 面向可擴展性的分布式數據庫,相對于傳統數據庫存在的可擴展性缺陷,這類數據庫可以適應數據量的增加以及數據結構的變化*//*** Redis是一個高級開源的key-value數據庫存儲系統.支持string,list,set,zset,hash 5種數據存儲類型,支持對數據的多種操作,能夠滿足絕大部分業務需求.* Redis中的數據都是緩存在內存中的,比讀取存儲在硬盤上的數據速度要快很多.* Redis支持數據的持久化操作,可通過配置,周期性的將內存中的數據寫入磁盤,提高了數據的安全性* Redis還支持主從同步,更好的解決了高并發的問題* Redis支持在Linux,Windows,MacOS系統中運行,但在實際應用場景中,推薦使用Linux系統.*//*** 在Linux系統使用Redis* http://redis.io/ 下載Redis安裝包* Redis采用"主版本號,次版本號,補丁版本號"的命名規則.次版本號的位置,偶數表示穩定版本,如1.2 2.0 ,奇數表示測試版本,如2.9代表測試版本,n那么3.0將會是2.9.x的穩定版本*這里建議lnamp或者lnmp一鍵安裝包* lnamp默認網站根目錄 /data/wwwroot/default/index.php*/#--------------------------------------- XML ----------------------------------------------- /*** 使用字符串生成xml**/ /* header('Content-type:text/xml'); $xmlstr=<<<XML <?xml version='1.0' standalone='yes'?> <movies><movie><title>shanpaojincheng</title><content>Two shan pao jin cheng</content></movie><plot><name>演的不錯</name></plot> </movies> XML; echo $xmlstr; //注: <<<xml 作用:將"<<<xml"和最后的"xml"之間的內容轉換成字符串; */ /* <movies><movie><title>shanpaojincheng</title><content>Two shan pao jin cheng</content></movie><plot><name>演的不錯</name></plot> </movies>*//*** 使用數組循環遍歷生成xml* 與使用字符串生成xml相比,數組生成xml則不用寫那么多<>標簽,輕松很多**/ /* header('Content-type:text/xml'); echo '<?xml version="1.0" ?>'."\n"; echo "<books>\n"; $books = [['bookname' =>'微信小程序開發實戰與應用實例','press'=>'清華大學出版社','publishtime'=>'2016-07'],['bookname'=>'一周微信公眾號開發入門到精通','press'=>'延安出版社','publishtime'=>'2017-5'] ]; foreach ($books as $book) {echo " <book>\n";foreach ($book as $tag=>$value){echo " <$tag>".htmlspecialchars($value)."</$tag>\n";}echo " </book>\n"; } echo "</books>"; *//* <books><book><bookname>微信小程序開發實戰與應用實例</bookname><press>清華大學出版社</press><publishtime>2016-07</publishtime></book><book><bookname>一周微信公眾號開發入門到精通</bookname><press>延安出版社</press><publishtime>2017-5</publishtime></book> </books>*//*** 通過PHP SimpleXML()解析xml,將字符串解析成對象,采用對象調用屬性的方式獲取值* SimpleXML()是用來處理XML最便捷的方案* 簡化了與xml的交互,可以把元素轉換成對象屬性,位于標簽之間的文本被指定給屬性* 如果同一個位置上有多個同名元素,n那么這些元素會被放在一個列表中.元素的屬性會被轉換成一個數組元素,其中* 數組的鍵是屬性名,鍵的值就是屬性值*/ //示例: /* $xmlstr=<<<XML <?xml version="1.0" standalone='yes' ?> <movies attr="qwe" ha="hahah屬性值"><movie a="shiyanshuxing"><title tt="tt屬性值">PHP從中階進階到大神</title><characters><character><name age="22 years old" country="china">lixiaoming</name><acter>onlivia actora</acter></character><character><name>Mr.coder</name><acter>xiaobudiu</acter></character></characters></movie> </movies> XML; $xml = simplexml_load_string($xmlstr); var_dump($xml);//將字符串變成xml對象 echo $xml->movie->title; echo ":"; echo $xml->movie->characters->character[0]->name; //獲取屬性值 echo $xml->movie->title['tt'] */#---------------------------------------- json的使用 ---------------------------------------- /*** json_encode() 將數組轉換成json編碼數據* json_decode() 對json格式的字符串進行解碼* PHP作為一門服務端語言,常被用來寫服務端接口邏輯,向客戶端返回json格式的數據* 與xml相比,在很多語言中,json數據的處理都比xml數據的處理簡單得多,json數據和數組可以實現非常方便的轉換* 在包含同樣信息的情況下,json數據字節數要比xml少很多* json這種便捷性和簡潔性使其可以取代xml成為互聯網信息的規范數據格式*//*** json_encode() 將數組轉換成json編碼數據*/ /* echo "連續數組"; $a = array('foo', 'zoo', 'xiaoming', 'xiaodong'); var_dump(json_encode($a)); //連續數組string(35) "["foo","zoo","xiaoming","xiaodong"]"echo "非連續數組"; $b = [1 => 'foo',2 => 'zoo',3 => 'XIAOMING',4 => 'XIAODONG' ]; var_dump(json_encode($b)); //非連續數組string(51) "{"1":"foo","2":"zoo","3":"XIAOMING","4":"XIAODONG"}"echo "刪除一個連續數組值的方式產生的非連續數組"; unset($a[1]); var_dump(json_encode($a)); //刪除一個連續數組值的方式產生的非連續數組string(41) "{"0":"foo","2":"xiaoming","3":"xiaodong"}"echo "二維數組"; $arr = array(array('name'=>'xiaobudiu','age'=>25,'sex'=>'man'),array('name'=>'PGone','age'=>25,'sex'=>'woman') ); var_dump(json_encode($arr)); //二維數組string(81) "[{"name":"xiaobudiu","age":25,"sex":"man"},{"name":"PGone","age":25,"sex":"woman"}]" *//*** json_decode()* 將json格式的字符串解碼* 第二個參數可選,選擇為true表示 將json字符串解碼成數組* 第二個參數默認false,解碼成對象object*/ //$json = '{"0":"foo","2":"xiaoming","3":"xiaodong"}'; //var_dump(json_decode($json)); /* object(stdClass)#1 (3) { ["0"]=>string(3) "foo" ["2"]=>string(8) "xiaoming" ["3"]=>string(8) "xiaodong" } */ //var_dump(json_decode($json,true)); /*array(3) {[0]=>string(3) "foo"[2]=>string(8) "xiaoming"[3]=>string(8) "xiaodong" } */#------------------------------------ MVC與ThinkPHP框架 --------------------------------------------- /*** mvc 一種軟件設計典范,用業務邏輯/數據/界面顯示分離 的方法組織代碼,將業務邏輯聚集到一個頁面里面,使得各部分的代碼做各自的事情,* 各個人員編寫的代碼負責特定的功能,降低了耦合度* 由mvc架構系統的程序執行流程:* controller截獲用戶發出的請求,調用model完成狀態的讀寫操作* controller把數據傳給view,view渲染最終效果并呈現給用戶.* 另外,php經常用來寫一些接口程序,提供接口返回特定格式的數據(一般是json),不同的客戶端(網頁前端,桌面客戶端,手機客戶端等)可通過調用接口* 獲得數據.*//*** 常用的php開源框架* ThinkPHP tp是為了簡化企業級應用開發和敏捷Web應用開發而誕生.* Yii 用于開發大型web應用.基于組件的高性能php框架通過一個簡單的命令行工具yiic可以快速創建一個web應用程序的代碼框架.* CI 組件的導入和函數的執行只有在被要求執行的時候才執行,而不是在全局范圍,因此默認的系統非常輕量級,為了達到最大的用途,每個類和它的功能都是高度自治的.* Laravel 一套簡潔,優雅的php web開發框架* Yaf (yet another framework) 提供了bootstrap,路由,分發,視圖,插件 ,是一個全功能的php框架*//*** tp5支持使用composer安裝**/#---------------------------------- 設計模式 -------------------------------------------- /*** 分為3大類:創建型模式,結構型模式,行為型模式,還有一種J2EE設計模式,共23種設計模式(設計模式-可復用的面向對象軟件元素)* 工廠模式以及單例模式屬于創建型模式.* 創建型模式的描述:這些設計模式提供了一種在創建對象的同時,隱藏創建邏輯的方式,而不是使用新的運算符直接實例化對象.* 這使得程序在判斷針對某個給定實例需要創建哪些對象時更加靈活*/ /*** 工廠模式* 工廠模式屬于創建型模式,提供了一種創建對象的方式.* 工廠模式是先定義一個創建對象的接口,讓其子類自己決定實例化哪一個工廠類.* 工廠模式的精髓就是可以根據不同的參數生成不同的類實例*/ //示例:加減乘除工廠類實例 //定義接口 /* interface Calc {public function getValue($num1,$num2); }//創建實現接口的實體類 class Add implements Calc {public function getValue($num1, $num2){return $num1+$num2;} }class Sub implements Calc {public function getValue($num1, $num2){return $num1 - $num2;} }class Mul implements Calc {public function getValue($num1, $num2){return $num1 * $num2;} }class Div implements Calc {public function getValue($num1, $num2){try {if ($num2 == 0){throw new Exception('除數不能為0');} else {return $num1 / $num2;}} catch (Exception $e) {echo "錯誤信息:".$e->getMessage();}} } // 創建一個工廠,生成基于給定信息的實體類的對象 class Factory {public static function createObj($operate){switch ($operate) {case '+':return new Add();break;case '-':return new Sub();break;case '*':return new Mul();break;case '/':return new Div();break;}} }$test=Factory::createObj('-'); echo $test->getValue(1,4); //注:其實想實現本功能,定義一個類,一個公共方法,方法里采用switch也可以實現本功能,但為了代碼的可讀性以及代碼的執行效率,所以采用工廠類; //注;這樣,我們就實現了根據用戶輸入的操作符實例化相應的對象,進而完成接下來相應的操作.在軟件開發中,php可能要鏈接mysql,也可能鏈接sqlserver. //或者其他數據庫,這樣我們就可以定義一個工廠類,動態生成不同的數據庫連接對象; //再比如設計一個連接服務器的框架,需要三個協議,即pop3,imap,http,可以把這三個作為產品類,共同實現一個接口.工廠模式使用場景很多,需要在實 //際開發中嘗試1應用 *//*** 單例模式* 單例模式涉及一個單一的類,該類負責創建自己的對象,同時確保只有單個對象被創建* 單例模式主要解決一個全局使用的類被頻繁創建與銷毀的問題* 由于只創建了一個類的實例,因此減少了內存的開銷,節省了系統資源* php中,單例模式經常被用在數據庫應用中.*/ //代碼示例: /* class Student {//私有的靜態屬性, 作用是為了存儲對象的.private static $_instance=null;//私有的構造方法,保證不允許在類外 newprivate function __construct(){}//私有的克隆方法, 保證不允許在類外 通過 clone 來創建新對象private function __clone(){}//公有的靜態方法, 作用,就是用來實例化對象public static function getInstance(){//將創建的新對象存儲到靜態屬性中//判斷靜態屬性中是否為空if (is_null(self::$_instance)) {//如果為空,則創建新對象,并將新存儲賦給靜態屬性$instanceself::$_instance = new self;}//如果$instance不為空,則直接將對象返回return self::$_instance;} } //調用靜態方法來創建對象 $obj = Student::getInstance(); $obj2 = Student::getInstance();//此行不再創建新對象 //var_dump($obj); //var_dump($obj2); *//*** 觀察者模式* 一種事件系統.有兩個類,a類和b類,a類允許b類觀察,獲取a類的狀態,當a類狀態發生改變的時候,b類可以收到通知,并作出相應的動作* 觀察者模式提供了避免組件之間緊密耦合的另一種方法* 比如要實現用戶注冊后發送郵件通知管理員和用戶自己填寫的郵箱的功能,我們可以將發送郵件給管理員和用戶自己都寫在這個實現用戶注冊* 的類里(使用觀察者實現),這樣,即使在以后更改了用戶注冊邏輯也不會影響到發送郵件的功能實現* 再比如當用戶下單購買一件商品時,我們需要將購買記錄寫入文本日志,數據庫日志,還要發送短信,送抵兌換券積分等,我們可以在主體類中實* 現下單購買的流程并定義一個觀察者接口,當用戶下單后通知各個觀察者對象執行自己的業務邏輯.*///示例1 //觀察者模式設計兩個類 //男人類和女人類 //男人類對象 xiaoming 女人類對象 xiaohua mother /* class man {//定義數組屬性,用于存放觀察者對象protected $observers=[];//將傳進來的觀察者對象存入觀察者數組中的方法function addObserver($observer){$this->observers[]=$observer;}//刪除觀察者的方法function delObserver($observer){//查找觀察者在數組中的鍵值$key=array_search($observer,$this->observers);//根據鍵值刪除對應觀察者unset($this->observers[$key]);}//男人buy()方法function buy(){foreach ($this->observers as $girl) {//當被觀察者作出buy()這個行為時,讓觀察者得到通知,并作出相應的反應$girl->dongjie();}} }class woman {function dongjie(){echo "你的兒子或者男朋友正在花錢<br>";} } //創建被觀察著對象 $xiaoming = new man(); //創建觀察者對象 $xiaohua = new woman(); $mother = new woman(); //為xiaoming添加觀察者 $xiaoming->addObserver($mother); $xiaoming->addObserver($xiaohua); //$xiaoming->delObserver($xiaohua); //xiaomign執行buy()之后,看觀察者xiaohua和mother是否能得到通知,并作出相應反應 $xiaoming->buy(); *///示例2: /*** 場景描述:* 哈票以購票為核心業務(此模式不限于該業務),但圍繞購票會產生不同的其他邏輯,如:* 1、購票后記錄文本日志* 2、購票后記錄數據庫日志* 3、購票后發送短信* 4、購票送抵扣卷、兌換卷、積分* 5、其他各類活動等** 傳統解決方案:* 在購票邏輯等類內部增加相關代碼,完成各種邏輯。** 存在問題:* 1、一旦某個業務邏輯發生改變,如購票業務中增加其他業務邏輯,需要修改購票核心文件、甚至購票流程。* 2、日積月累后,文件冗長,導致后續維護困難。** 存在問題原因主要是程序的"緊密耦合",使用觀察者模式將目前的業務邏輯優化成"松耦合",達到易維護、易修改的目的,* 同時也符合面向接口編程的思想。** 觀察者模式典型實現方式:* 1、定義2個接口:觀察者(通知)接口、被觀察者(主題)接口* 2、定義2個類,觀察者對象實現觀察者接口、主題類實現被觀者接口* 3、主題類注冊自己需要通知的觀察者* 4、主題類某個業務邏輯發生時通知觀察者對象,每個觀察者執行自己的業務邏輯。*/#--------------------------------- 定義觀察者、被觀察者接口 ----------------------------- /* //觀察者接口(通知接口) interface guancha {function onBuyTicketOver($sender, $args); //得到通知后調用的方法 }//被觀察者接口(主題接口) interface beiguancha {function addObserver($observer); //提供添加觀察者的方法 }/主題類實現/////主題類(購票)實現主題接口(被觀察者) class buyPiao implements beiguancha {private $_observers = []; //數組存放觀察者對象public function buyTicket($ticket) //購票核心類,處理購票流程{//購票邏輯//循環通知,調用其onBuyTicketOver實現不同業務邏輯foreach ($this->_observers as $obs) {$obs->onBuyTicketOver ($this, $ticket); //$this 可用來獲取主題類句柄,在通知中使用}}//添加通知public function addObserver($observer) //添加N個通知{$this->_observers [] = $observer;} }#--------------------------------------- 定義多個通知 ------------------------------------//短信日志通知 class HipiaoMSM implements guancha {public function onBuyTicketOver($sender, $ticket){echo (date ( 'Y-m-d H:i:s' ) . " 短信日志記錄:購票成功:$ticket<br>");} } //文本日志通知 class HipiaoTxt implements guancha {public function onBuyTicketOver($sender, $ticket){echo (date ( 'Y-m-d H:i:s' ) . " 文本日志記錄:購票成功:$ticket<br>");} } //抵扣卷贈送通知 class HipiaoDiKou implements guancha {public function onBuyTicketOver($sender, $ticket){echo (date ( 'Y-m-d H:i:s' ) . " 贈送抵扣卷:購票成功:$ticket 贈送10元抵扣卷1張。<br>");} }#------------------ 用戶購票 ------------------ $buy = new buyPiao(); $buy->addObserver ( new HipiaoMSM () ); //根據不同業務邏輯加入各種通知 $buy->addObserver ( new HipiaoTxt () ); $buy->addObserver ( new HipiaoDiKou () ); //購票 $buy->buyTicket ( "一排一號" ); *//*** 策略模式* 與工廠模式實現的功能相似,區別是工廠模式關注的是對象的創建,提供創建對象的接口,是創建型的設計接口,接收指令,創建出符合要求的實例* 策略模式是行為型的設計模式,接受已經創建好的實例,實現不同的行為**/#------------------------------------------- 開始進入API的世界 ------------------------------------------------ /*** 隨著移動網絡的發展,多終端的出現,為了降低服務端的工作量,和以后的維護量,我們希望開發一套可適用于多個終端的接口.* 面向接口編程要求我們將定義和實現分開,盡可能編寫粒度更細的接口,降低各個接口之間的依賴度,這些接口通過一定的組合能夠對外提供一套系統服務**/#---------------------- 傳輸消息加解密 -------------------------- /*** 單向散列加密* 常用的單向散列加密:MD5,SHA等* 單向加密是對不同輸入長度的信息進行散列計算,得到固定長度的散列計算值.輸入信息的任何微小變化都會導致散列的很大不同,并且這種計算是不可逆的* 即無法根據散列值獲得明文信息.這種單向散列加密可用于用戶密碼的保存.即不將用戶輸入的密碼直接保存到數據庫,而是對密碼進行單向散列加密.將密文* 存入數據庫,用戶登陸時進行密碼驗證,同樣對輸入的密碼進行散列加密,與數據庫中密碼的密文進行對比,若一致,則驗證通過* 雖然不能通過算法從散列密文解出明文,但是由于人們設置的密碼具有一定的模式(比如使用生日或名字作為密碼),因此通過彩虹表(密碼和對應的密文關系表)* 等手段都可以猜測式的1破解.為了增加單向散列被破解的難度,還可以給散列算法加鹽值(salt),salt相當于加密時的鑰匙,增加破解時的難度*//*** 對稱加密* 對稱加密是指加密和解密使用的是同一個秘鑰.對稱加密類似接口簽名驗證,將明文和密鑰按照一定的算法進行加密,同樣使用密鑰和一定的算法對密文進行解密* 獲得明文.* PHP提供了一個MCRYPT擴展,可用于對稱加密.* 注:php7開始,已經對mcrypt加密方式進行刪除,官方不推薦此方式了.**/ /*** mycrpt加密需要以下幾個步驟:**/ //示例1/* $str = "我的名字是?一般人我不告訴他!"; //加密內容 $key = "key25111"; //密鑰 $cipher = MCRYPT_DES; //密碼類型 $modes = MCRYPT_MODE_ECB; //密碼模式 $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher, $modes), MCRYPT_RAND);//初始化向量 echo "加密明文:".$str."<p>"; $str_encrypt = mcrypt_encrypt($cipher, $key, $str, $modes, $iv); //加密函數 echo "加密密文:".$str_encrypt." <p>"; $str_decrypt = mcrypt_decrypt($cipher, $key, $str_encrypt, $modes,$iv); //解密函數 echo "還原:".$str_decrypt; *//***非對稱加密* RSA是目前最有影響力的公鑰加密算法*與對稱加密不同的是,非對稱加密和解密使用的是不同的密鑰,其中一個對外公開作為公鑰,另一個只有私有者私有,成為私鑰.用私鑰加密的*信息只有公鑰能夠解開,反之用公鑰加密的信息只有私鑰能夠解開.*常用的非對稱加密有RSA算法*RSA算法基于一個非常簡單的數論事實,將兩個大質數相乘十分容易,但是想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰*PHP中,提供基于RSA算法的openssl擴展可實現對數據的非對稱加密*/#------------------------------- 使用ajax進行交互 ---------------------------------- /*** 把網頁看成客戶端,服務端以提供接口的形式向客戶端提供數據的增刪改查服務.* 在網頁開發中,經常使用ajax技術實現客戶端與服務端的數據交互* ajax是一種在無須重新加載整個網頁的情況下能夠更新部分網頁的技術.* ajax通過在后臺與服務器進行少量的數據交換可以使網頁實現異步更新.*///檢測用戶名是否可用 //假設用戶名為zhangsan和lisi已經被使用了 /***html代碼 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>檢測用戶名是否被使用</title> </head> <body> 用戶名:<input type="text" name="name" id="name"><span id="span"></span> </body> <!--實現的功能是:當用戶輸入完用戶名,失去焦點時,自動檢測是否被使用了--> <script>//獲取input元素var input = document.getElementById('name');//給其綁定失去焦點事件input.οnblur = function () {//創建xhr對象xhr = new XMLHttpRequest();//獲取用戶輸入的用戶名var name = this.value;//狀態確認后才接收數據xhr.onreadystatechange = function () {if (xhr.readyState == 4 && xhr.status == 200) {if (xhr.responseText == 1) {document.getElementById('span').innerHTML = "<font color='red'>baoqian,您輸入的用戶名已經有人注冊</font>"} else {document.getElementById('span').innerHTML = "<font color='#7fffd4'>gongxi,可以注冊此用戶名</font>"}}}//設置請求xhr.open('get','index.php?name='+name,true);//發送請求xhr.send();} </script> </html>*/ /***php代碼*/ /* $name = $_GET['name']; if ($name == 'zhangsan') {echo 1; } else {echo 2; } */

總結

以上是生活随笔為你收集整理的PHP基础(必须熟练掌握的基础)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

亚洲欧美国产精品久久 | 97久久精品无码一区二区 | 97色伦图片97综合影院 | 亚洲人成网站在线播放942 | 99精品国产综合久久久久五月天 | 巨爆乳无码视频在线观看 | 自拍偷自拍亚洲精品被多人伦好爽 | 久久综合网欧美色妞网 | 久久精品国产一区二区三区肥胖 | 国产麻豆精品精东影业av网站 | 乱中年女人伦av三区 | 国产亚洲美女精品久久久2020 | 又粗又大又硬又长又爽 | yw尤物av无码国产在线观看 | 亚洲gv猛男gv无码男同 | 亚洲熟熟妇xxxx | 国产农村乱对白刺激视频 | 3d动漫精品啪啪一区二区中 | 亚洲中文无码av永久不收费 | 一本无码人妻在中文字幕免费 | 国产又爽又猛又粗的视频a片 | 亚洲呦女专区 | 97资源共享在线视频 | 成人av无码一区二区三区 | 成年美女黄网站色大免费全看 | 亚洲男人av天堂午夜在 | 理论片87福利理论电影 | 亚洲理论电影在线观看 | 国产超级va在线观看视频 | 无码国产乱人伦偷精品视频 | 国产国产精品人在线视 | 日本熟妇乱子伦xxxx | 88国产精品欧美一区二区三区 | 99久久精品午夜一区二区 | 日韩无套无码精品 | 国产午夜无码视频在线观看 | 无码av免费一区二区三区试看 | 亚洲精品一区二区三区婷婷月 | 人人妻人人澡人人爽欧美一区九九 | 精品偷自拍另类在线观看 | 久久久久久九九精品久 | 日本大香伊一区二区三区 | 强奷人妻日本中文字幕 | 天天燥日日燥 | 十八禁真人啪啪免费网站 | 国产莉萝无码av在线播放 | 东京热无码av男人的天堂 | 欧美老妇交乱视频在线观看 | 18禁止看的免费污网站 | 亚洲男人av天堂午夜在 | 亚洲一区二区观看播放 | 欧美老妇交乱视频在线观看 | 国产偷自视频区视频 | 亚洲国产欧美日韩精品一区二区三区 | 国产内射老熟女aaaa | 国产成人综合色在线观看网站 | 午夜福利一区二区三区在线观看 | 国产国产精品人在线视 | 亚洲国产精品久久人人爱 | 日本大香伊一区二区三区 | 一本精品99久久精品77 | 国产97色在线 | 免 | 国産精品久久久久久久 | 国产 精品 自在自线 | 亚洲日韩av一区二区三区四区 | 国产香蕉尹人视频在线 | 真人与拘做受免费视频 | 亚洲国产高清在线观看视频 | 精品国产国产综合精品 | 国产精品怡红院永久免费 | 国内精品一区二区三区不卡 | 色婷婷香蕉在线一区二区 | 婷婷六月久久综合丁香 | 国产精品无套呻吟在线 | 欧美日韩一区二区三区自拍 | 欧洲熟妇精品视频 | 精品久久8x国产免费观看 | 日本一本二本三区免费 | 久久精品国产精品国产精品污 | 日韩人妻少妇一区二区三区 | 国产亚洲精品久久久久久 | 女高中生第一次破苞av | 国产亚洲精品久久久久久大师 | 午夜丰满少妇性开放视频 | 亚洲毛片av日韩av无码 | 国产午夜福利100集发布 | 又大又硬又黄的免费视频 | 99久久人妻精品免费一区 | 成人一在线视频日韩国产 | 麻豆国产人妻欲求不满谁演的 | 久久人人97超碰a片精品 | 日韩视频 中文字幕 视频一区 | 精品人妻中文字幕有码在线 | 18黄暴禁片在线观看 | 九月婷婷人人澡人人添人人爽 | 国产午夜无码精品免费看 | 亚洲码国产精品高潮在线 | 蜜臀aⅴ国产精品久久久国产老师 | a片在线免费观看 | 99精品视频在线观看免费 | 欧美阿v高清资源不卡在线播放 | 无码精品人妻一区二区三区av | 日本一卡2卡3卡四卡精品网站 | 无码av中文字幕免费放 | 日韩亚洲欧美精品综合 | 天天拍夜夜添久久精品 | 久久久www成人免费毛片 | 精品欧洲av无码一区二区三区 | 久久久中文久久久无码 | 76少妇精品导航 | 人妻天天爽夜夜爽一区二区 | 国产无av码在线观看 | 午夜精品久久久内射近拍高清 | 欧美国产日韩久久mv | 国产深夜福利视频在线 | 精品国产乱码久久久久乱码 | 久久精品国产一区二区三区肥胖 | 欧美性猛交内射兽交老熟妇 | 无码播放一区二区三区 | 双乳奶水饱满少妇呻吟 | 亚洲精品成人福利网站 | 亚洲精品一区二区三区四区五区 | 成人无码精品1区2区3区免费看 | 国产成人无码av在线影院 | 3d动漫精品啪啪一区二区中 | 蜜桃视频插满18在线观看 | 亚洲国产av精品一区二区蜜芽 | 一本色道婷婷久久欧美 | 日本护士xxxxhd少妇 | 欧美三级不卡在线观看 | 久久久久久久人妻无码中文字幕爆 | 日产精品高潮呻吟av久久 | 日日摸夜夜摸狠狠摸婷婷 | 99久久久国产精品无码免费 | 国内丰满熟女出轨videos | 亚洲色欲久久久综合网东京热 | 欧美亚洲国产一区二区三区 | 狠狠色噜噜狠狠狠狠7777米奇 | 久久天天躁狠狠躁夜夜免费观看 | 理论片87福利理论电影 | 亚洲欧美精品伊人久久 | 国内少妇偷人精品视频免费 | 欧美刺激性大交 | 波多野结衣aⅴ在线 | 日本高清一区免费中文视频 | 水蜜桃色314在线观看 | 十八禁视频网站在线观看 | 久在线观看福利视频 | 亚洲国产av精品一区二区蜜芽 | 欧美三级不卡在线观看 | 成人精品一区二区三区中文字幕 | 性欧美牲交在线视频 | 日日噜噜噜噜夜夜爽亚洲精品 | 人妻少妇被猛烈进入中文字幕 | 国产亚洲精品久久久久久国模美 | 精品一区二区三区波多野结衣 | 青青青手机频在线观看 | 午夜精品久久久久久久 | 最近免费中文字幕中文高清百度 | 秋霞成人午夜鲁丝一区二区三区 | 国产区女主播在线观看 | 国产亚洲美女精品久久久2020 | 无码人妻久久一区二区三区不卡 | 国产情侣作爱视频免费观看 | 精品欧洲av无码一区二区三区 | 丰满人妻精品国产99aⅴ | 亚洲欧洲日本综合aⅴ在线 | 98国产精品综合一区二区三区 | 人妻无码久久精品人妻 | 狠狠噜狠狠狠狠丁香五月 | 荡女精品导航 | 精品少妇爆乳无码av无码专区 | 丰满少妇女裸体bbw | 中文字幕乱码中文乱码51精品 | 精品欧洲av无码一区二区三区 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲毛片av日韩av无码 | 国产艳妇av在线观看果冻传媒 | 久久伊人色av天堂九九小黄鸭 | 四虎影视成人永久免费观看视频 | 曰韩少妇内射免费播放 | 欧美人妻一区二区三区 | 久久久精品456亚洲影院 | 麻豆蜜桃av蜜臀av色欲av | 一本精品99久久精品77 | 国产亚洲精品久久久久久国模美 | 成人aaa片一区国产精品 | 小鲜肉自慰网站xnxx | 亲嘴扒胸摸屁股激烈网站 | 2019nv天堂香蕉在线观看 | 久久国语露脸国产精品电影 | 东京无码熟妇人妻av在线网址 | 色婷婷欧美在线播放内射 | 少妇人妻偷人精品无码视频 | 亚洲人成影院在线无码按摩店 | 久9re热视频这里只有精品 | 4hu四虎永久在线观看 | 国产精品无码mv在线观看 | 欧美成人家庭影院 | 伊人久久大香线蕉亚洲 | 成年美女黄网站色大免费视频 | 狠狠色丁香久久婷婷综合五月 | 精品无人区无码乱码毛片国产 | 国产亚洲人成a在线v网站 | 国产在线一区二区三区四区五区 | 国产乱子伦视频在线播放 | 激情五月综合色婷婷一区二区 | 天天综合网天天综合色 | 日韩欧美群交p片內射中文 | 亚洲精品国偷拍自产在线麻豆 | 极品尤物被啪到呻吟喷水 | 国内精品久久久久久中文字幕 | 性色欲情网站iwww九文堂 | 国产精品人人妻人人爽 | av无码电影一区二区三区 | 久久综合网欧美色妞网 | 99国产精品白浆在线观看免费 | 久热国产vs视频在线观看 | 亚洲综合精品香蕉久久网 | 国产av一区二区三区最新精品 | 精品无码国产一区二区三区av | 少妇久久久久久人妻无码 | 成熟女人特级毛片www免费 | 午夜无码区在线观看 | 中文字幕乱码亚洲无线三区 | 露脸叫床粗话东北少妇 | 4hu四虎永久在线观看 | 久久久久se色偷偷亚洲精品av | 熟妇人妻激情偷爽文 | 久久精品国产精品国产精品污 | 国产在热线精品视频 | 精品国产国产综合精品 | 国产真实夫妇视频 | 国产极品美女高潮无套在线观看 | 久久久无码中文字幕久... | 国产成人精品优优av | 无码毛片视频一区二区本码 | 久久综合给合久久狠狠狠97色 | 久久久久久亚洲精品a片成人 | 亚洲精品国产a久久久久久 | 亚洲精品国产a久久久久久 | 成人免费视频一区二区 | 97色伦图片97综合影院 | 97se亚洲精品一区 | 精品人妻中文字幕有码在线 | 国产精品久免费的黄网站 | 欧美日韩久久久精品a片 | 乌克兰少妇xxxx做受 | 亚洲日韩av片在线观看 | 76少妇精品导航 | 蜜臀av在线播放 久久综合激激的五月天 | 亚洲a无码综合a国产av中文 | 97久久精品无码一区二区 | 日韩精品一区二区av在线 | 久久综合狠狠综合久久综合88 | 又紧又大又爽精品一区二区 | 伊人久久大香线焦av综合影院 | 狠狠cao日日穞夜夜穞av | 国产做国产爱免费视频 | 色欲久久久天天天综合网精品 | 成人动漫在线观看 | 色综合久久久无码网中文 | 国产精品美女久久久久av爽李琼 | 日本饥渴人妻欲求不满 | 亚洲色欲色欲欲www在线 | 色婷婷欧美在线播放内射 | 久久精品国产亚洲精品 | a在线观看免费网站大全 | 亚洲自偷自偷在线制服 | 国产精品va在线观看无码 | 欧美丰满熟妇xxxx性ppx人交 | 无码精品人妻一区二区三区av | 欧美人与牲动交xxxx | 久久亚洲精品中文字幕无男同 | 日韩av无码中文无码电影 | 少妇厨房愉情理9仑片视频 | 日日碰狠狠丁香久燥 | 国产内射爽爽大片视频社区在线 | 一本久道久久综合狠狠爱 | 性欧美videos高清精品 | 男女爱爱好爽视频免费看 | √天堂中文官网8在线 | 欧美老人巨大xxxx做受 | 人妻无码αv中文字幕久久琪琪布 | 成人免费无码大片a毛片 | 熟妇激情内射com | 巨爆乳无码视频在线观看 | 国产精品亚洲专区无码不卡 | 色欲人妻aaaaaaa无码 | 又粗又大又硬又长又爽 | 国产精品第一国产精品 | 一本色道久久综合狠狠躁 | 国产超碰人人爽人人做人人添 | 亚洲综合无码久久精品综合 | 亚洲欧美中文字幕5发布 | 久久亚洲国产成人精品性色 | 亚洲国产精品无码一区二区三区 | 国产精华av午夜在线观看 | 亚洲s色大片在线观看 | 亚洲人成无码网www | 婷婷五月综合激情中文字幕 | 国产乱人伦偷精品视频 | 色综合久久久无码网中文 | 97精品人妻一区二区三区香蕉 | 国产精品美女久久久 | 国产人妖乱国产精品人妖 | 狠狠cao日日穞夜夜穞av | 青草青草久热国产精品 | 日本精品高清一区二区 | 国产精品无码一区二区桃花视频 | 狠狠色噜噜狠狠狠狠7777米奇 | 国产成人一区二区三区在线观看 | 伊人久久大香线焦av综合影院 | 色老头在线一区二区三区 | 18无码粉嫩小泬无套在线观看 | 色欲av亚洲一区无码少妇 | 国模大胆一区二区三区 | 奇米影视7777久久精品人人爽 | 国产真实夫妇视频 | 国产精品福利视频导航 | 亚洲区欧美区综合区自拍区 | 久久99国产综合精品 | 欧美性生交活xxxxxdddd | 日韩精品成人一区二区三区 | 欧美日本精品一区二区三区 | 中国女人内谢69xxxxxa片 | 精品国产av色一区二区深夜久久 | 国产精品怡红院永久免费 | 国产偷自视频区视频 | 午夜嘿嘿嘿影院 | 国产激情艳情在线看视频 | 国产亚洲精品久久久闺蜜 | 18黄暴禁片在线观看 | 日本在线高清不卡免费播放 | 亚洲狠狠色丁香婷婷综合 | 伊在人天堂亚洲香蕉精品区 | 18黄暴禁片在线观看 | 在线观看国产一区二区三区 | 黑人玩弄人妻中文在线 | √8天堂资源地址中文在线 | 久久熟妇人妻午夜寂寞影院 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 露脸叫床粗话东北少妇 | 曰韩无码二三区中文字幕 | 成人三级无码视频在线观看 | 中文字幕人妻无码一夲道 | 牲欲强的熟妇农村老妇女 | 国产一区二区三区精品视频 | 人妻无码久久精品人妻 | 久久久久久久女国产乱让韩 | 国产亲子乱弄免费视频 | 中文字幕无码日韩欧毛 | 青草视频在线播放 | 76少妇精品导航 | 天天摸天天透天天添 | 大屁股大乳丰满人妻 | 国产真人无遮挡作爱免费视频 | 内射欧美老妇wbb | 少妇无码av无码专区在线观看 | 内射老妇bbwx0c0ck | 午夜精品久久久内射近拍高清 | 亚洲一区av无码专区在线观看 | 国产精品办公室沙发 | 4hu四虎永久在线观看 | 黑人巨大精品欧美一区二区 | 中文字幕无码乱人伦 | 超碰97人人做人人爱少妇 | 亚洲a无码综合a国产av中文 | 性做久久久久久久免费看 | 牲欲强的熟妇农村老妇女 | 99riav国产精品视频 | 99麻豆久久久国产精品免费 | 少妇性俱乐部纵欲狂欢电影 | 国产suv精品一区二区五 | 午夜免费福利小电影 | 少妇愉情理伦片bd | 成人无码精品一区二区三区 | 日本一区二区更新不卡 | 黑人巨大精品欧美黑寡妇 | 日本爽爽爽爽爽爽在线观看免 | 四虎永久在线精品免费网址 | 成熟妇人a片免费看网站 | 人妻插b视频一区二区三区 | 最近免费中文字幕中文高清百度 | 国产欧美精品一区二区三区 | 久久综合九色综合97网 | 国产极品美女高潮无套在线观看 | 亚洲理论电影在线观看 | 国产国产精品人在线视 | 国产情侣作爱视频免费观看 | 成人精品天堂一区二区三区 | 亚洲综合精品香蕉久久网 | 久青草影院在线观看国产 | 狠狠亚洲超碰狼人久久 | 狂野欧美性猛xxxx乱大交 | 日韩精品无码一区二区中文字幕 | 精品国产aⅴ无码一区二区 | 丰满少妇人妻久久久久久 | 色诱久久久久综合网ywww | www国产亚洲精品久久网站 | 日韩人妻无码一区二区三区久久99 | 性欧美videos高清精品 | 一本加勒比波多野结衣 | 高清不卡一区二区三区 | 亚洲成av人综合在线观看 | 亚洲中文无码av永久不收费 | 丰满人妻翻云覆雨呻吟视频 | 国产成人一区二区三区在线观看 | 国产精品久久久久久久影院 | 久久综合激激的五月天 | 免费看少妇作爱视频 | 婷婷色婷婷开心五月四房播播 | 久久国内精品自在自线 | 狠狠躁日日躁夜夜躁2020 | 国产片av国语在线观看 | 性欧美videos高清精品 | 国内综合精品午夜久久资源 | 波多野结衣av一区二区全免费观看 | 国产精品高潮呻吟av久久4虎 | 国产偷抇久久精品a片69 | 日韩少妇内射免费播放 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产色视频一区二区三区 | 日韩欧美群交p片內射中文 | 中文字幕av无码一区二区三区电影 | 无码人妻丰满熟妇区毛片18 | 麻花豆传媒剧国产免费mv在线 | 欧美日韩人成综合在线播放 | 强伦人妻一区二区三区视频18 | 色一情一乱一伦一视频免费看 | 无码中文字幕色专区 | 一二三四在线观看免费视频 | 日产精品高潮呻吟av久久 | 色综合久久久无码中文字幕 | 少妇愉情理伦片bd | 精品国产福利一区二区 | 国产麻豆精品精东影业av网站 | 久久zyz资源站无码中文动漫 | 国产无遮挡又黄又爽免费视频 | 人妻人人添人妻人人爱 | 欧美精品免费观看二区 | 国产精品久久久久7777 | 中文字幕av无码一区二区三区电影 | 久久久久99精品国产片 | 亚洲国产午夜精品理论片 | 欧美人与禽zoz0性伦交 | 欧美激情内射喷水高潮 | 亚洲成a人一区二区三区 | 午夜不卡av免费 一本久久a久久精品vr综合 | 精品亚洲成av人在线观看 | 男人扒开女人内裤强吻桶进去 | 国产成人无码a区在线观看视频app | 日韩人妻系列无码专区 | 国产精品久久久久9999小说 | 亚洲欧洲无卡二区视頻 | 国产精品自产拍在线观看 | 欧美日韩亚洲国产精品 | 国产一区二区三区影院 | 内射后入在线观看一区 | 国产综合久久久久鬼色 | 亚洲精品中文字幕乱码 | 天堂无码人妻精品一区二区三区 | 纯爱无遮挡h肉动漫在线播放 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 无码精品人妻一区二区三区av | 国产特级毛片aaaaaa高潮流水 | 在线亚洲高清揄拍自拍一品区 | 又湿又紧又大又爽a视频国产 | 1000部啪啪未满十八勿入下载 | 无码人妻精品一区二区三区不卡 | 激情亚洲一区国产精品 | av香港经典三级级 在线 | 天海翼激烈高潮到腰振不止 | 欧美成人免费全部网站 | 两性色午夜视频免费播放 | 国产色精品久久人妻 | 四虎国产精品免费久久 | 国产成人无码区免费内射一片色欲 | 国产精品久久国产三级国 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 美女张开腿让人桶 | 亚洲春色在线视频 | 少妇无码吹潮 | 亚洲精品国产品国语在线观看 | 色综合久久网 | 一本久久a久久精品亚洲 | 国产日产欧产精品精品app | 无码人妻少妇伦在线电影 | 中国女人内谢69xxxx | 精品无人区无码乱码毛片国产 | 亚洲中文字幕久久无码 | 精品国产成人一区二区三区 | 久久成人a毛片免费观看网站 | 性生交大片免费看女人按摩摩 | 精品欧美一区二区三区久久久 | 国产手机在线αⅴ片无码观看 | 中文字幕+乱码+中文字幕一区 | 88国产精品欧美一区二区三区 | 亚洲精品一区国产 | 国产猛烈高潮尖叫视频免费 | 国产美女极度色诱视频www | 中国大陆精品视频xxxx | 色婷婷久久一区二区三区麻豆 | 久久精品国产亚洲精品 | 久久精品人人做人人综合试看 | 亚洲a无码综合a国产av中文 | 熟女俱乐部五十路六十路av | 亚洲国产精品美女久久久久 | 一个人免费观看的www视频 | 国产综合色产在线精品 | 夜先锋av资源网站 | 一本大道久久东京热无码av | 乱人伦人妻中文字幕无码久久网 | 亚洲精品久久久久久久久久久 | 亚洲s码欧洲m码国产av | 成人aaa片一区国产精品 | 中文字幕日韩精品一区二区三区 | 日本成熟视频免费视频 | 欧美激情一区二区三区成人 | 亚洲国产精品无码一区二区三区 | 高中生自慰www网站 | 国产午夜亚洲精品不卡下载 | 中文字幕人成乱码熟女app | 99re在线播放 | 日本一卡2卡3卡四卡精品网站 | 帮老师解开蕾丝奶罩吸乳网站 | 久久精品视频在线看15 | 国产精品毛多多水多 | 国语精品一区二区三区 | 波多野结衣乳巨码无在线观看 | 国产97色在线 | 免 | 少妇性俱乐部纵欲狂欢电影 | 中文精品无码中文字幕无码专区 | 天天拍夜夜添久久精品 | 丁香花在线影院观看在线播放 | 亚洲精品一区三区三区在线观看 | 综合网日日天干夜夜久久 | 精品人妻人人做人人爽 | 欧美刺激性大交 | 夜精品a片一区二区三区无码白浆 | 国产农村乱对白刺激视频 | 青青青爽视频在线观看 | 精品偷拍一区二区三区在线看 | 熟女体下毛毛黑森林 | 国产精品无码一区二区桃花视频 | 亚洲精品一区二区三区在线观看 | 久久精品中文闷骚内射 | 噜噜噜亚洲色成人网站 | 天天躁夜夜躁狠狠是什么心态 | 国产av无码专区亚洲a∨毛片 | 老熟女重囗味hdxx69 | 欧美喷潮久久久xxxxx | 欧美日韩久久久精品a片 | 中文字幕色婷婷在线视频 | 久久精品成人欧美大片 | 亚洲男人av天堂午夜在 | av无码电影一区二区三区 | 久9re热视频这里只有精品 | 日本护士毛茸茸高潮 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 欧美熟妇另类久久久久久多毛 | 人人妻在人人 | 久久久精品人妻久久影视 | 国产 浪潮av性色四虎 | a在线亚洲男人的天堂 | 午夜免费福利小电影 | 亚洲精品午夜国产va久久成人 | 国产无遮挡又黄又爽又色 | 99视频精品全部免费免费观看 | 国产成人精品一区二区在线小狼 | 亚洲乱码日产精品bd | 狂野欧美性猛xxxx乱大交 | 人妻天天爽夜夜爽一区二区 | 漂亮人妻洗澡被公强 日日躁 | 国产成人无码午夜视频在线观看 | 人人妻人人藻人人爽欧美一区 | 老熟女重囗味hdxx69 | 精品国产乱码久久久久乱码 | 捆绑白丝粉色jk震动捧喷白浆 | 日欧一片内射va在线影院 | 国产成人无码区免费内射一片色欲 | 国产激情一区二区三区 | 俺去俺来也www色官网 | 精品亚洲韩国一区二区三区 | 自拍偷自拍亚洲精品被多人伦好爽 | 天天躁日日躁狠狠躁免费麻豆 | 青草青草久热国产精品 | 国产婷婷色一区二区三区在线 | 国产精品无套呻吟在线 | 人妻少妇精品视频专区 | 日本爽爽爽爽爽爽在线观看免 | 黄网在线观看免费网站 | 在线天堂新版最新版在线8 | 国产精品永久免费视频 | 成人免费无码大片a毛片 | 久久午夜无码鲁丝片 | 国产两女互慰高潮视频在线观看 | 清纯唯美经典一区二区 | 日韩少妇白浆无码系列 | 欧美猛少妇色xxxxx | 大胆欧美熟妇xx | 欧美精品无码一区二区三区 | 中文字幕无码热在线视频 | 九九在线中文字幕无码 | 亚洲色www成人永久网址 | 又粗又大又硬毛片免费看 | 久久久久久av无码免费看大片 | 青春草在线视频免费观看 | 妺妺窝人体色www婷婷 | 爽爽影院免费观看 | 装睡被陌生人摸出水好爽 | 玩弄人妻少妇500系列视频 | 国产成人人人97超碰超爽8 | 久久国产劲爆∧v内射 | 午夜无码区在线观看 | 欧美人与牲动交xxxx | 国产卡一卡二卡三 | 2019nv天堂香蕉在线观看 | 亚洲综合色区中文字幕 | 内射白嫩少妇超碰 | 亚洲欧美中文字幕5发布 | 性史性农村dvd毛片 | 呦交小u女精品视频 | 日日天日日夜日日摸 | 露脸叫床粗话东北少妇 | 国产精品无套呻吟在线 | 天海翼激烈高潮到腰振不止 | 捆绑白丝粉色jk震动捧喷白浆 | 国产av一区二区精品久久凹凸 | 久久精品国产99久久6动漫 | 日韩无码专区 | 人人妻人人澡人人爽欧美一区九九 | 亚洲无人区一区二区三区 | 亚洲成色在线综合网站 | 国产综合久久久久鬼色 | 日本一卡2卡3卡四卡精品网站 | 人妻少妇被猛烈进入中文字幕 | 精品久久8x国产免费观看 | 野狼第一精品社区 | 精品无码国产自产拍在线观看蜜 | 久热国产vs视频在线观看 | 久久久久99精品成人片 | 性做久久久久久久久 | 无码国产激情在线观看 | 麻豆精产国品 | 日本一区二区三区免费播放 | 色妞www精品免费视频 | 成人免费视频视频在线观看 免费 | 久久久久99精品成人片 | 老司机亚洲精品影院无码 | 成人影院yy111111在线观看 | 久久综合给合久久狠狠狠97色 | 荫蒂添的好舒服视频囗交 | 亚洲 高清 成人 动漫 | 国产精品无码成人午夜电影 | 狂野欧美性猛交免费视频 | 国产乱子伦视频在线播放 | 亚洲s码欧洲m码国产av | 日日噜噜噜噜夜夜爽亚洲精品 | 国产午夜福利100集发布 | 领导边摸边吃奶边做爽在线观看 | 97精品国产97久久久久久免费 | 99精品国产综合久久久久五月天 | 国产偷国产偷精品高清尤物 | 精品无码国产一区二区三区av | 精品夜夜澡人妻无码av蜜桃 | 中文字幕乱妇无码av在线 | 国精品人妻无码一区二区三区蜜柚 | 亚洲乱码国产乱码精品精 | 性色欲情网站iwww九文堂 | 国产激情无码一区二区app | 亚洲狠狠色丁香婷婷综合 | 午夜精品一区二区三区在线观看 | 熟女体下毛毛黑森林 | 国产精品成人av在线观看 | 国产熟妇另类久久久久 | 图片小说视频一区二区 | 男女性色大片免费网站 | 麻豆国产丝袜白领秘书在线观看 | 国产在线无码精品电影网 | 狠狠亚洲超碰狼人久久 | 国产口爆吞精在线视频 | 国产亚洲精品久久久久久久久动漫 | 久在线观看福利视频 | 少妇一晚三次一区二区三区 | 俺去俺来也在线www色官网 | 真人与拘做受免费视频 | 香港三级日本三级妇三级 | 狂野欧美激情性xxxx | 日韩精品乱码av一区二区 | 久9re热视频这里只有精品 | 欧美人与禽zoz0性伦交 | 国产精品.xx视频.xxtv | 1000部啪啪未满十八勿入下载 | 欧美freesex黑人又粗又大 | 国产又粗又硬又大爽黄老大爷视 | 丰满妇女强制高潮18xxxx | 国产极品视觉盛宴 | 1000部夫妻午夜免费 | 99久久婷婷国产综合精品青草免费 | 色妞www精品免费视频 | 国产精品久久久 | 高潮喷水的毛片 | 国产猛烈高潮尖叫视频免费 | 在线观看欧美一区二区三区 | 麻豆md0077饥渴少妇 | 成人无码影片精品久久久 | 99精品国产综合久久久久五月天 | 日本乱人伦片中文三区 | 熟女俱乐部五十路六十路av | 国产三级久久久精品麻豆三级 | 国产无遮挡吃胸膜奶免费看 | 日韩精品一区二区av在线 | 亚洲精品成人福利网站 | 婷婷综合久久中文字幕蜜桃三电影 | 中文字幕乱码中文乱码51精品 | 国产凸凹视频一区二区 | 爱做久久久久久 | 无套内谢的新婚少妇国语播放 | 亚洲综合无码久久精品综合 | 麻豆国产人妻欲求不满 | 图片区 小说区 区 亚洲五月 | 国产精品久久久久9999小说 | 无码人妻丰满熟妇区毛片18 | 久久99国产综合精品 | 久在线观看福利视频 | 国产成人一区二区三区别 | 成人欧美一区二区三区黑人 | 帮老师解开蕾丝奶罩吸乳网站 | 国产一区二区三区影院 | a在线观看免费网站大全 | 人人妻人人澡人人爽人人精品浪潮 | 大屁股大乳丰满人妻 | 伊在人天堂亚洲香蕉精品区 | 国产无遮挡吃胸膜奶免费看 | 少妇无套内谢久久久久 | 国产综合久久久久鬼色 | 亚洲色成人中文字幕网站 | 天天爽夜夜爽夜夜爽 | 久久精品女人天堂av免费观看 | av小次郎收藏 | 曰韩少妇内射免费播放 | 亚洲精品国产a久久久久久 | 亚洲人成人无码网www国产 | 国产熟女一区二区三区四区五区 | 波多野结衣乳巨码无在线观看 | 中文字幕乱码人妻无码久久 | 国产内射老熟女aaaa | 亚洲熟妇色xxxxx欧美老妇 | 狠狠躁日日躁夜夜躁2020 | av人摸人人人澡人人超碰下载 | 亚洲中文字幕在线观看 | 亚洲熟妇色xxxxx欧美老妇y | 女人被男人爽到呻吟的视频 | 99久久人妻精品免费二区 | 国产97在线 | 亚洲 | 麻花豆传媒剧国产免费mv在线 | 日韩视频 中文字幕 视频一区 | 日韩人妻无码中文字幕视频 | 欧美日韩色另类综合 | 久久精品国产亚洲精品 | 成人精品一区二区三区中文字幕 | 日韩欧美中文字幕在线三区 | 成在人线av无码免观看麻豆 | 一区二区三区高清视频一 | 精品国产av色一区二区深夜久久 | 2020最新国产自产精品 | 亚洲国产日韩a在线播放 | 三级4级全黄60分钟 | 欧美人与禽猛交狂配 | 久久久久免费看成人影片 | 成人性做爰aaa片免费看 | 丰满岳乱妇在线观看中字无码 | 强伦人妻一区二区三区视频18 | 在线欧美精品一区二区三区 | 亚洲爆乳精品无码一区二区三区 | 国产午夜福利100集发布 | 一二三四在线观看免费视频 | 少妇邻居内射在线 | 国产一精品一av一免费 | 少妇高潮一区二区三区99 | 未满成年国产在线观看 | 少妇无码av无码专区在线观看 | 天堂а√在线地址中文在线 | 日日摸夜夜摸狠狠摸婷婷 | 国产精品免费大片 | 妺妺窝人体色www在线小说 | 麻豆md0077饥渴少妇 | 国产九九九九九九九a片 | аⅴ资源天堂资源库在线 | 免费网站看v片在线18禁无码 | 日韩av无码中文无码电影 | 国产精品高潮呻吟av久久4虎 | 日韩无套无码精品 | 国产乱人伦av在线无码 | 久久精品女人天堂av免费观看 | 在线成人www免费观看视频 | 在线天堂新版最新版在线8 | 亚洲日韩精品欧美一区二区 | 久久精品中文字幕大胸 | 久久久www成人免费毛片 | 永久免费观看美女裸体的网站 | 成人毛片一区二区 | 99久久精品日本一区二区免费 | 少妇无码一区二区二三区 | 国产精品亚洲五月天高清 | 国产人妻人伦精品 | 欧美老人巨大xxxx做受 | 国产人妻久久精品二区三区老狼 | 成人无码精品1区2区3区免费看 | 综合激情五月综合激情五月激情1 | av小次郎收藏 | 久久午夜无码鲁丝片午夜精品 | 久久久久久亚洲精品a片成人 | 亚洲小说春色综合另类 | 一区二区三区乱码在线 | 欧洲 | 野外少妇愉情中文字幕 | 高清不卡一区二区三区 | 色综合久久久无码中文字幕 | 亚洲成a人片在线观看无码 | 久久精品无码一区二区三区 | 亚洲日韩av一区二区三区四区 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 美女毛片一区二区三区四区 | 在线观看国产午夜福利片 | 疯狂三人交性欧美 | 日本一本二本三区免费 | 精品国偷自产在线 | 丁香啪啪综合成人亚洲 | 国产成人亚洲综合无码 | 风流少妇按摩来高潮 | 丰满岳乱妇在线观看中字无码 | 一二三四社区在线中文视频 | 欧美日韩在线亚洲综合国产人 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亚洲成a人一区二区三区 | 亚洲成色在线综合网站 | 爆乳一区二区三区无码 | 欧美 亚洲 国产 另类 | 亚洲乱码日产精品bd | 久久综合激激的五月天 | 久久久久人妻一区精品色欧美 | 国产又爽又猛又粗的视频a片 | 亚洲日韩一区二区三区 | 国产精品手机免费 | 日本精品久久久久中文字幕 | 麻豆国产人妻欲求不满谁演的 | 欧洲欧美人成视频在线 | 国产卡一卡二卡三 | 国产亚洲精品久久久久久久 | 日韩无套无码精品 | 国产成人综合美国十次 | 久久精品国产大片免费观看 | 全球成人中文在线 | 夜精品a片一区二区三区无码白浆 | 欧美日韩在线亚洲综合国产人 | 国产亚洲精品久久久久久 | 国产在线精品一区二区三区直播 | 99精品国产综合久久久久五月天 | 国产成人无码a区在线观看视频app | 欧美喷潮久久久xxxxx | аⅴ资源天堂资源库在线 | 国产精品久久精品三级 | 黑人玩弄人妻中文在线 | 国产在线一区二区三区四区五区 | 日韩欧美群交p片內射中文 | 99久久久无码国产精品免费 | 一本久久伊人热热精品中文字幕 | 亚洲一区二区三区偷拍女厕 | 中文字幕乱码人妻二区三区 | 波多野结衣av一区二区全免费观看 | 欧美性生交xxxxx久久久 | 波多野结衣一区二区三区av免费 | 国产成人无码专区 | 俄罗斯老熟妇色xxxx | 久久久成人毛片无码 | 三上悠亚人妻中文字幕在线 | 日本精品久久久久中文字幕 | 67194成是人免费无码 | 国产午夜手机精彩视频 | 无码国产激情在线观看 | 六月丁香婷婷色狠狠久久 | 精品夜夜澡人妻无码av蜜桃 | 欧美激情内射喷水高潮 | 一本色道久久综合亚洲精品不卡 | 中文字幕无码乱人伦 | 激情亚洲一区国产精品 | 红桃av一区二区三区在线无码av | а√天堂www在线天堂小说 | 麻豆国产97在线 | 欧洲 | 性做久久久久久久免费看 | 婷婷色婷婷开心五月四房播播 | 成人欧美一区二区三区黑人 | 中文无码精品a∨在线观看不卡 | 丰满肥臀大屁股熟妇激情视频 | 亚洲精品国产第一综合99久久 | 亚洲精品综合五月久久小说 | 午夜时刻免费入口 | 亚洲人成网站色7799 | 任你躁国产自任一区二区三区 | 蜜桃无码一区二区三区 | 国产亚洲人成a在线v网站 | 亚洲色大成网站www国产 | 永久免费精品精品永久-夜色 | 国产乱人伦av在线无码 | 人人妻人人澡人人爽精品欧美 | www国产精品内射老师 | 国产成人人人97超碰超爽8 | 国产三级精品三级男人的天堂 | 久久aⅴ免费观看 | 国产一区二区三区日韩精品 | 精品久久久久久人妻无码中文字幕 | 欧美熟妇另类久久久久久多毛 | 国产综合色产在线精品 | 欧美性生交活xxxxxdddd | 午夜不卡av免费 一本久久a久久精品vr综合 | 人妻少妇精品视频专区 | 久久久婷婷五月亚洲97号色 | 欧美激情内射喷水高潮 | 奇米影视888欧美在线观看 | 午夜福利不卡在线视频 | 亚洲精品久久久久久一区二区 | 亚洲欧美日韩国产精品一区二区 | 天天拍夜夜添久久精品大 | 久久五月精品中文字幕 | 久久久久久久人妻无码中文字幕爆 | 少妇高潮喷潮久久久影院 | 久久国产精品精品国产色婷婷 | 亚洲欧美色中文字幕在线 | 国产精品无码久久av | 久久久久久亚洲精品a片成人 | 人妻有码中文字幕在线 | 亚洲中文字幕在线无码一区二区 | 麻豆国产丝袜白领秘书在线观看 | 熟女少妇人妻中文字幕 | 一本无码人妻在中文字幕免费 | 亚洲一区二区三区在线观看网站 | www一区二区www免费 | 欧美老妇与禽交 | 精品熟女少妇av免费观看 | 无码国模国产在线观看 | 国产亚洲视频中文字幕97精品 | 男女爱爱好爽视频免费看 | 成人免费视频视频在线观看 免费 | 99久久精品无码一区二区毛片 | 爱做久久久久久 | 欧美人与物videos另类 | 女人高潮内射99精品 | 国产精品18久久久久久麻辣 | 色综合久久中文娱乐网 | 人妻少妇被猛烈进入中文字幕 | 久久 国产 尿 小便 嘘嘘 | 又色又爽又黄的美女裸体网站 | 亚洲国产精品久久久久久 | 欧美野外疯狂做受xxxx高潮 | 天干天干啦夜天干天2017 | 亚洲午夜无码久久 | 98国产精品综合一区二区三区 | 国产真实夫妇视频 | 帮老师解开蕾丝奶罩吸乳网站 | 精品国产一区二区三区av 性色 | 欧美大屁股xxxxhd黑色 | 在线视频网站www色 | 沈阳熟女露脸对白视频 | 色综合久久中文娱乐网 | 中文字幕 亚洲精品 第1页 | 精品乱子伦一区二区三区 | 久久婷婷五月综合色国产香蕉 | 日日橹狠狠爱欧美视频 | 精品人妻中文字幕有码在线 | 国产免费久久久久久无码 | 图片区 小说区 区 亚洲五月 | 亚洲区小说区激情区图片区 | 欧美日韩人成综合在线播放 | 无码人妻出轨黑人中文字幕 | 国产明星裸体无码xxxx视频 | 亚洲理论电影在线观看 | 麻豆精产国品 | 国产成人亚洲综合无码 | 97无码免费人妻超级碰碰夜夜 | 无码免费一区二区三区 | 激情内射日本一区二区三区 | 国产免费无码一区二区视频 | 久久久www成人免费毛片 | 精品午夜福利在线观看 | 在线播放免费人成毛片乱码 | 久久久久国色av免费观看性色 | 性欧美videos高清精品 | 国产明星裸体无码xxxx视频 | 亚洲人交乣女bbw | 狠狠综合久久久久综合网 | 老熟妇仑乱视频一区二区 | 久久无码中文字幕免费影院蜜桃 | 内射白嫩少妇超碰 | 色一情一乱一伦一视频免费看 | 一个人看的www免费视频在线观看 | 内射欧美老妇wbb | 国产又爽又猛又粗的视频a片 | 四虎4hu永久免费 | 成人欧美一区二区三区黑人 | 无码国产色欲xxxxx视频 | 国产又爽又黄又刺激的视频 | 久久久久av无码免费网 | 日本一本二本三区免费 | 99久久无码一区人妻 | 中文字幕av日韩精品一区二区 | 国模大胆一区二区三区 | 国产精品鲁鲁鲁 | 亚洲 a v无 码免 费 成 人 a v | 久久国内精品自在自线 | 亚洲中文字幕无码中文字在线 | 久久精品国产日本波多野结衣 | 牲交欧美兽交欧美 | 麻豆国产人妻欲求不满谁演的 | 久久国产精品萌白酱免费 | 丰满岳乱妇在线观看中字无码 | 荫蒂添的好舒服视频囗交 | 国产真实伦对白全集 | 少妇无码一区二区二三区 | 成人免费视频视频在线观看 免费 | 樱花草在线播放免费中文 | 熟妇人妻激情偷爽文 | 日韩成人一区二区三区在线观看 | 久久综合狠狠综合久久综合88 | 老熟女重囗味hdxx69 | 18精品久久久无码午夜福利 | 亚洲精品一区二区三区四区五区 | 乱人伦人妻中文字幕无码 | 任你躁国产自任一区二区三区 | 精品国产av色一区二区深夜久久 | 人妻少妇被猛烈进入中文字幕 | 97夜夜澡人人爽人人喊中国片 | 美女黄网站人色视频免费国产 | 极品尤物被啪到呻吟喷水 | 免费乱码人妻系列无码专区 | 亚洲精品www久久久 | 亚洲成熟女人毛毛耸耸多 | 麻花豆传媒剧国产免费mv在线 | 香蕉久久久久久av成人 | 亚洲国产一区二区三区在线观看 | 欧美阿v高清资源不卡在线播放 | 欧美日本精品一区二区三区 | 大乳丰满人妻中文字幕日本 | 国产口爆吞精在线视频 | 久久亚洲中文字幕精品一区 | 黑人玩弄人妻中文在线 | 精品熟女少妇av免费观看 | 人妻夜夜爽天天爽三区 | 久久综合久久自在自线精品自 | 国内精品人妻无码久久久影院 | 亚洲国产精品一区二区美利坚 | 综合网日日天干夜夜久久 | 动漫av网站免费观看 | 亚洲成a人一区二区三区 | 日本大香伊一区二区三区 | 国产精品久久久久影院嫩草 | 伊人久久婷婷五月综合97色 | 日本高清一区免费中文视频 | 欧美变态另类xxxx | 粗大的内捧猛烈进出视频 | 人妻少妇被猛烈进入中文字幕 | 少妇人妻av毛片在线看 | 黑人巨大精品欧美黑寡妇 | 中文字幕无线码 | 国产精华av午夜在线观看 | 精品国产成人一区二区三区 | 亚洲国产精品成人久久蜜臀 | 伊人久久大香线焦av综合影院 | 亚洲精品中文字幕乱码 | 日韩人妻无码一区二区三区久久99 | 在线看片无码永久免费视频 | 日日干夜夜干 | 日本高清一区免费中文视频 | 人妻少妇精品久久 | 亚洲无人区午夜福利码高清完整版 | 2019nv天堂香蕉在线观看 | 一区二区三区乱码在线 | 欧洲 | 日韩亚洲欧美精品综合 | 国产精品久久久久影院嫩草 | 欧美精品国产综合久久 | 麻豆av传媒蜜桃天美传媒 | 欧美日韩综合一区二区三区 | 国产色xx群视频射精 | 女人被男人躁得好爽免费视频 | 性做久久久久久久免费看 | 亚洲综合精品香蕉久久网 | 亚洲中文字幕va福利 | 国产网红无码精品视频 | 国产深夜福利视频在线 | 野狼第一精品社区 | 无码午夜成人1000部免费视频 | 成人欧美一区二区三区黑人 | 国产精品.xx视频.xxtv | 日韩亚洲欧美中文高清在线 | 国产成人精品无码播放 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 精品一二三区久久aaa片 | 影音先锋中文字幕无码 | 国产精品内射视频免费 | 2019nv天堂香蕉在线观看 | 国产人妻大战黑人第1集 | 暴力强奷在线播放无码 | 欧美丰满熟妇xxxx | 天干天干啦夜天干天2017 | 亚洲成a人片在线观看无码3d | 天堂在线观看www | 国产av人人夜夜澡人人爽麻豆 | 中文字幕无码av激情不卡 | 国产成人一区二区三区别 | 亚洲国产午夜精品理论片 | 好屌草这里只有精品 | 亚洲成a人一区二区三区 | 婷婷丁香六月激情综合啪 | 风流少妇按摩来高潮 | 少妇性l交大片欧洲热妇乱xxx | 真人与拘做受免费视频一 | 久久久久久亚洲精品a片成人 | 欧美丰满熟妇xxxx性ppx人交 | 日韩精品无码一区二区中文字幕 | 国产亚洲人成a在线v网站 | 欧美变态另类xxxx | 人妻与老人中文字幕 | 中文字幕人妻无码一区二区三区 | 妺妺窝人体色www婷婷 | 波多野结衣高清一区二区三区 | 国内老熟妇对白xxxxhd | 对白脏话肉麻粗话av | 国产疯狂伦交大片 | 欧美三级a做爰在线观看 | 亚洲成a人片在线观看无码 | 国产婷婷色一区二区三区在线 | 任你躁国产自任一区二区三区 | 久久综合网欧美色妞网 | 国产人妻大战黑人第1集 | 给我免费的视频在线观看 | 成人无码精品一区二区三区 | 国产va免费精品观看 | 99久久精品午夜一区二区 | 日本欧美一区二区三区乱码 | 老熟妇乱子伦牲交视频 | 97夜夜澡人人双人人人喊 | 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲国产精品美女久久久久 | 免费乱码人妻系列无码专区 | 国产成人一区二区三区在线观看 | 未满小14洗澡无码视频网站 | 国产免费久久精品国产传媒 | 亚洲午夜久久久影院 | 性做久久久久久久免费看 | 亚洲精品久久久久久一区二区 | 国产乱人伦av在线无码 | 亚洲国产av精品一区二区蜜芽 | 麻豆国产丝袜白领秘书在线观看 | 精品国精品国产自在久国产87 | 中文字幕人妻无码一区二区三区 | 国产午夜亚洲精品不卡下载 | 欧美freesex黑人又粗又大 | 狂野欧美性猛交免费视频 | 亚洲伊人久久精品影院 | 99精品国产综合久久久久五月天 | 亚洲另类伦春色综合小说 | 国产超碰人人爽人人做人人添 | 一个人看的www免费视频在线观看 | 网友自拍区视频精品 | 亚洲国产精品成人久久蜜臀 | 国产在线aaa片一区二区99 | 亚洲色无码一区二区三区 | 高中生自慰www网站 | 中文亚洲成a人片在线观看 | 国产精品自产拍在线观看 | 我要看www免费看插插视频 | 夜精品a片一区二区三区无码白浆 | 成人欧美一区二区三区 | 国产精品人人妻人人爽 | 欧美日本精品一区二区三区 | 思思久久99热只有频精品66 | 97夜夜澡人人双人人人喊 | 天堂久久天堂av色综合 | 亚洲自偷自偷在线制服 | 国产人妻精品一区二区三区 | 国产在线精品一区二区三区直播 | 无码人妻丰满熟妇区毛片18 | 午夜成人1000部免费视频 | 亚洲无人区午夜福利码高清完整版 | 国产午夜精品一区二区三区嫩草 | 日本一卡2卡3卡四卡精品网站 | 久久伊人色av天堂九九小黄鸭 | 麻豆国产人妻欲求不满谁演的 | 色婷婷久久一区二区三区麻豆 | 欧美xxxx黑人又粗又长 | 国产超级va在线观看视频 | 亚洲va中文字幕无码久久不卡 | 欧美黑人乱大交 | 熟女体下毛毛黑森林 | 巨爆乳无码视频在线观看 | 国产精品久久久久7777 | 成 人 网 站国产免费观看 | 88国产精品欧美一区二区三区 | 国产人妖乱国产精品人妖 | 国产熟女一区二区三区四区五区 | 国产福利视频一区二区 | 国产在线精品一区二区高清不卡 | 亚洲综合久久一区二区 | 久久久久亚洲精品男人的天堂 | 亚洲精品无码国产 | 狠狠色噜噜狠狠狠7777奇米 | 精品人妻人人做人人爽 | 精品 日韩 国产 欧美 视频 | 帮老师解开蕾丝奶罩吸乳网站 | 精品水蜜桃久久久久久久 | 亚洲成熟女人毛毛耸耸多 | 黄网在线观看免费网站 | 国产成人精品久久亚洲高清不卡 | 亚洲国产精品久久人人爱 | 国产成人无码一二三区视频 | 伦伦影院午夜理论片 | 牲欲强的熟妇农村老妇女视频 | 黑人大群体交免费视频 | 成人女人看片免费视频放人 | 青青青爽视频在线观看 | 精品亚洲成av人在线观看 | 在线观看国产一区二区三区 | 精品无人国产偷自产在线 | 国产午夜亚洲精品不卡下载 | 久久人妻内射无码一区三区 | 国产亚洲tv在线观看 | 国产亚洲精品久久久久久久 | 久久久婷婷五月亚洲97号色 | 无码人妻丰满熟妇区五十路百度 | 亚洲色欲久久久综合网东京热 | 香蕉久久久久久av成人 | 人人爽人人爽人人片av亚洲 | 日本大乳高潮视频在线观看 | 亚洲人成人无码网www国产 | 国语精品一区二区三区 | 秋霞特色aa大片 | 激情五月综合色婷婷一区二区 | 免费无码一区二区三区蜜桃大 | 久久精品人人做人人综合 | 日韩在线不卡免费视频一区 | 国语自产偷拍精品视频偷 | 在线 国产 欧美 亚洲 天堂 | 男人的天堂av网站 | 激情内射亚州一区二区三区爱妻 | 精品乱子伦一区二区三区 | 午夜精品一区二区三区的区别 | 国产成人精品无码播放 | 少妇太爽了在线观看 | 无码福利日韩神码福利片 | 日日碰狠狠躁久久躁蜜桃 | 国产高清av在线播放 | 日本护士xxxxhd少妇 | 亚洲成av人影院在线观看 | 欧美性黑人极品hd | 久久久www成人免费毛片 | 婷婷五月综合缴情在线视频 | 亚洲国产精品美女久久久久 | 亚洲无人区午夜福利码高清完整版 | 漂亮人妻洗澡被公强 日日躁 | 爆乳一区二区三区无码 | 国产亚洲精品精品国产亚洲综合 | 白嫩日本少妇做爰 | 最新国产乱人伦偷精品免费网站 | 国产成人一区二区三区别 | 欧美三级不卡在线观看 | 天堂亚洲2017在线观看 | 日本丰满熟妇videos | 丝袜 中出 制服 人妻 美腿 | 国产成人人人97超碰超爽8 | 色综合久久88色综合天天 | 亚洲欧美国产精品久久 | 香港三级日本三级妇三级 | 精品无码一区二区三区爱欲 | 欧美亚洲日韩国产人成在线播放 | 中国大陆精品视频xxxx | 日日噜噜噜噜夜夜爽亚洲精品 | 熟妇激情内射com | 日日鲁鲁鲁夜夜爽爽狠狠 | 波多野42部无码喷潮在线 | 免费无码肉片在线观看 | 男人的天堂2018无码 | 中文字幕av伊人av无码av | 激情爆乳一区二区三区 | 18禁黄网站男男禁片免费观看 | 99久久人妻精品免费一区 | 波多野结衣 黑人 | 麻豆精品国产精华精华液好用吗 | 亚洲精品久久久久久一区二区 | 日本护士毛茸茸高潮 | 欧美性生交活xxxxxdddd | 日本精品高清一区二区 | 蜜桃视频插满18在线观看 | 色爱情人网站 | 中文毛片无遮挡高清免费 | 76少妇精品导航 | 欧美人与物videos另类 | 久久天天躁狠狠躁夜夜免费观看 | 日本www一道久久久免费榴莲 | 1000部夫妻午夜免费 | 久久精品99久久香蕉国产色戒 | 国产精品亚洲一区二区三区喷水 | 欧美日韩视频无码一区二区三 | 欧美熟妇另类久久久久久不卡 | 免费网站看v片在线18禁无码 | 激情五月综合色婷婷一区二区 | 精品国产国产综合精品 | 久久国产精品偷任你爽任你 | 欧美丰满熟妇xxxx性ppx人交 | 又湿又紧又大又爽a视频国产 | 日本成熟视频免费视频 | 亚洲第一无码av无码专区 | 国产乱人无码伦av在线a | 九月婷婷人人澡人人添人人爽 | 日本乱人伦片中文三区 | 久久精品国产99精品亚洲 | 国产人妻精品一区二区三区 | 无遮挡国产高潮视频免费观看 | 强开小婷嫩苞又嫩又紧视频 | 丁香花在线影院观看在线播放 | 少妇无码一区二区二三区 | a在线观看免费网站大全 | 欧美野外疯狂做受xxxx高潮 | 麻豆成人精品国产免费 | 夫妻免费无码v看片 | 亚洲欧洲日本综合aⅴ在线 | 国产精品鲁鲁鲁 | 日本乱人伦片中文三区 | 成人无码视频免费播放 | 成人精品视频一区二区三区尤物 | 综合人妻久久一区二区精品 | 国产成人综合色在线观看网站 | 激情内射亚州一区二区三区爱妻 | 日本护士毛茸茸高潮 | 欧美成人家庭影院 | 少妇无码av无码专区在线观看 | aa片在线观看视频在线播放 | 强伦人妻一区二区三区视频18 | 国产精品久久久久久久影院 | 国产三级久久久精品麻豆三级 | 巨爆乳无码视频在线观看 | 精品aⅴ一区二区三区 | 亚洲狠狠婷婷综合久久 | 人妻aⅴ无码一区二区三区 | 亚洲精品一区二区三区在线 | 国产乱人偷精品人妻a片 | 久久久婷婷五月亚洲97号色 | 性做久久久久久久免费看 | 亚洲热妇无码av在线播放 | 乱中年女人伦av三区 | 日本va欧美va欧美va精品 | 亚洲熟妇自偷自拍另类 | 色诱久久久久综合网ywww | 精品欧美一区二区三区久久久 | 久久99热只有频精品8 | 成人无码精品一区二区三区 | 国产97人人超碰caoprom | 精品厕所偷拍各类美女tp嘘嘘 | 蜜臀aⅴ国产精品久久久国产老师 | 久久精品人人做人人综合 | 少妇激情av一区二区 | 动漫av一区二区在线观看 | 大屁股大乳丰满人妻 | 国产内射爽爽大片视频社区在线 | 精品水蜜桃久久久久久久 | 嫩b人妻精品一区二区三区 | 国产美女极度色诱视频www | 国产精品亚洲а∨无码播放麻豆 | 最新国产麻豆aⅴ精品无码 | 亚洲一区二区三区在线观看网站 | 国产精品久久久久无码av色戒 | 国产成人精品视频ⅴa片软件竹菊 | 精品国产一区二区三区四区在线看 | 55夜色66夜色国产精品视频 | 亚洲国产高清在线观看视频 | 日韩精品a片一区二区三区妖精 | 久久aⅴ免费观看 | 久在线观看福利视频 | 日本爽爽爽爽爽爽在线观看免 | 娇妻被黑人粗大高潮白浆 | 少妇被粗大的猛进出69影院 | 欧美日韩一区二区三区自拍 | 免费男性肉肉影院 | 97无码免费人妻超级碰碰夜夜 | 日韩精品久久久肉伦网站 | 特级做a爰片毛片免费69 | 亚洲最大成人网站 | 日韩在线不卡免费视频一区 | 色老头在线一区二区三区 | 亚洲精品久久久久中文第一幕 | 青春草在线视频免费观看 | 亚洲男人av香蕉爽爽爽爽 | 伊人久久大香线蕉午夜 | 免费男性肉肉影院 | 国内精品久久毛片一区二区 | 亚洲熟妇自偷自拍另类 | 色综合久久久久综合一本到桃花网 | 精品久久久久久人妻无码中文字幕 | 四虎国产精品一区二区 | 久久精品一区二区三区四区 | 国产成人精品无码播放 | 国产精品久久福利网站 | а天堂中文在线官网 | 99riav国产精品视频 | 国产成人精品久久亚洲高清不卡 | 免费观看又污又黄的网站 | 亚洲自偷精品视频自拍 | 亚洲精品一区二区三区在线 | 国产农村乱对白刺激视频 | 77777熟女视频在线观看 а天堂中文在线官网 | 扒开双腿吃奶呻吟做受视频 | 国产激情无码一区二区 | aⅴ在线视频男人的天堂 | 欧美自拍另类欧美综合图片区 | 中文字幕 亚洲精品 第1页 | 亚洲s色大片在线观看 | 亚洲精品中文字幕久久久久 | 精品一区二区三区无码免费视频 | 久久伊人色av天堂九九小黄鸭 | 亚洲a无码综合a国产av中文 | 欧美一区二区三区 | 三上悠亚人妻中文字幕在线 | 99国产欧美久久久精品 | 亚洲成av人片天堂网无码】 | 婷婷丁香六月激情综合啪 | 精品国精品国产自在久国产87 | 激情综合激情五月俺也去 | 婷婷丁香六月激情综合啪 | 99久久精品国产一区二区蜜芽 | 精品国产aⅴ无码一区二区 | 色五月五月丁香亚洲综合网 | 疯狂三人交性欧美 | 日韩欧美群交p片內射中文 | 人人妻人人澡人人爽人人精品 | а√资源新版在线天堂 | 久久99精品久久久久婷婷 | 午夜福利一区二区三区在线观看 | 免费播放一区二区三区 | 男人的天堂av网站 | 亚洲成av人在线观看网址 | 国产偷国产偷精品高清尤物 | 人人妻人人澡人人爽人人精品 | 成人无码视频在线观看网站 | 一本久久a久久精品亚洲 | 色婷婷欧美在线播放内射 | 色综合久久88色综合天天 | 男女超爽视频免费播放 | 国产色xx群视频射精 | 67194成是人免费无码 | 欧美激情内射喷水高潮 | ass日本丰满熟妇pics | 国产精品二区一区二区aⅴ污介绍 | 亚洲人亚洲人成电影网站色 | 国产午夜手机精彩视频 | 纯爱无遮挡h肉动漫在线播放 | 欧洲极品少妇 | 欧美性生交活xxxxxdddd | 成熟人妻av无码专区 | 亚洲s色大片在线观看 | 国产精品对白交换视频 | 大地资源中文第3页 | 日韩精品无码免费一区二区三区 | 久久精品女人的天堂av | 欧美成人免费全部网站 | 亚洲国产精品一区二区美利坚 | 一本大道伊人av久久综合 | 亚洲精品综合一区二区三区在线 | 久久久久久久人妻无码中文字幕爆 | 青青久在线视频免费观看 | 久久亚洲a片com人成 | 欧美成人免费全部网站 | 国内少妇偷人精品视频免费 | 在线观看国产午夜福利片 | 亚洲色大成网站www | 国产免费久久久久久无码 | 国产成人无码a区在线观看视频app | 国产精品人人爽人人做我的可爱 | 久久午夜无码鲁丝片 | 亚洲综合无码一区二区三区 | 天天综合网天天综合色 | 久久精品女人天堂av免费观看 | 熟妇人妻激情偷爽文 | 三级4级全黄60分钟 | 久久午夜无码鲁丝片秋霞 | 精品国产麻豆免费人成网站 | 给我免费的视频在线观看 | 成人欧美一区二区三区黑人 | 人人澡人摸人人添 | 亚洲日韩中文字幕在线播放 | 欧美亚洲日韩国产人成在线播放 | 真人与拘做受免费视频一 | 一本无码人妻在中文字幕免费 | 精品欧美一区二区三区久久久 | 国产精品va在线观看无码 | 精品国产一区二区三区四区在线看 | 特黄特色大片免费播放器图片 | av无码电影一区二区三区 | aⅴ在线视频男人的天堂 | 日韩欧美群交p片內射中文 | 国产精品18久久久久久麻辣 | 色婷婷欧美在线播放内射 | 377p欧洲日本亚洲大胆 | 国产人妻人伦精品1国产丝袜 | 中文字幕乱码人妻二区三区 | 久久精品女人的天堂av | 久久亚洲a片com人成 | 久久午夜无码鲁丝片午夜精品 | 亚洲乱码日产精品bd | 国产精华av午夜在线观看 | 妺妺窝人体色www婷婷 | 午夜无码人妻av大片色欲 | 蜜桃av抽搐高潮一区二区 | 男女作爱免费网站 | 性啪啪chinese东北女人 | 在线亚洲高清揄拍自拍一品区 | 丰满肥臀大屁股熟妇激情视频 | 国产成人无码区免费内射一片色欲 | 亚洲 欧美 激情 小说 另类 | 久久久久久av无码免费看大片 | 色婷婷香蕉在线一区二区 | 日日夜夜撸啊撸 | 亚洲精品国产a久久久久久 | 国精品人妻无码一区二区三区蜜柚 | 亚洲 激情 小说 另类 欧美 | 无遮挡国产高潮视频免费观看 | 伦伦影院午夜理论片 | 2020最新国产自产精品 | 亚洲色偷偷偷综合网 | 亚洲熟女一区二区三区 | 欧美人与禽猛交狂配 | 久久久久久九九精品久 | 男女下面进入的视频免费午夜 | 精品国产成人一区二区三区 | 一本色道久久综合亚洲精品不卡 | 日韩少妇白浆无码系列 | 少妇久久久久久人妻无码 | 国产精品99爱免费视频 | 麻豆果冻传媒2021精品传媒一区下载 | 中文精品无码中文字幕无码专区 | 99re在线播放 | 好男人www社区 | 又湿又紧又大又爽a视频国产 | 国产精品99爱免费视频 | 国产精品无码mv在线观看 | 偷窥日本少妇撒尿chinese | 成人一区二区免费视频 | 夜夜影院未满十八勿进 | 国内老熟妇对白xxxxhd | 无码国产乱人伦偷精品视频 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 在线天堂新版最新版在线8 | 国产av一区二区精品久久凹凸 | 国产在线精品一区二区高清不卡 | 国产av一区二区三区最新精品 | 国产后入清纯学生妹 | 免费无码肉片在线观看 | 国产精品18久久久久久麻辣 | 久久综合色之久久综合 | 18禁黄网站男男禁片免费观看 | 亚洲午夜福利在线观看 | 九九在线中文字幕无码 | 国产农村乱对白刺激视频 | 动漫av一区二区在线观看 | 亚洲成av人影院在线观看 | 中文字幕无码av激情不卡 | 无码人妻丰满熟妇区毛片18 | 狠狠躁日日躁夜夜躁2020 | 国内综合精品午夜久久资源 | 色诱久久久久综合网ywww | 国产成人精品视频ⅴa片软件竹菊 | 一本色道婷婷久久欧美 | 少妇愉情理伦片bd | 一本久久伊人热热精品中文字幕 | 亚洲va中文字幕无码久久不卡 | 中文字幕人妻无码一区二区三区 | 国产精品久久国产精品99 | 免费看男女做好爽好硬视频 | 国产精品-区区久久久狼 | 99久久无码一区人妻 | 国产人妻精品一区二区三区 | 中文字幕无码日韩专区 | 欧美 亚洲 国产 另类 | 亚洲精品一区二区三区大桥未久 | 久久99精品久久久久久 | 激情五月综合色婷婷一区二区 | 日日橹狠狠爱欧美视频 | 内射老妇bbwx0c0ck | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 好男人社区资源 | 国产一精品一av一免费 | 在线 国产 欧美 亚洲 天堂 | 网友自拍区视频精品 | 成年女人永久免费看片 | 国产精品-区区久久久狼 | 一本色道久久综合亚洲精品不卡 | 蜜臀aⅴ国产精品久久久国产老师 | 丰满岳乱妇在线观看中字无码 | 男女爱爱好爽视频免费看 | 亚洲乱码中文字幕在线 | 欧美性黑人极品hd | 成人无码精品一区二区三区 | 亚洲色欲色欲天天天www | 在线观看国产午夜福利片 | 丰满妇女强制高潮18xxxx | 少妇久久久久久人妻无码 | 亚洲大尺度无码无码专区 | 成人女人看片免费视频放人 | 狠狠躁日日躁夜夜躁2020 | 国产精品久久国产三级国 | 波多野结衣av一区二区全免费观看 | 中文字幕av日韩精品一区二区 | 久久久久久久人妻无码中文字幕爆 | 日韩视频 中文字幕 视频一区 | 麻豆md0077饥渴少妇 | 曰韩无码二三区中文字幕 | 亚洲欧美综合区丁香五月小说 | 欧美三级a做爰在线观看 | 久久久久人妻一区精品色欧美 | 日韩精品无码一区二区中文字幕 | 日韩亚洲欧美精品综合 | 久久久久国色av免费观看性色 | 国产精品亚洲一区二区三区喷水 | 啦啦啦www在线观看免费视频 | 51国偷自产一区二区三区 | 精品熟女少妇av免费观看 | 国产极品视觉盛宴 | 无码午夜成人1000部免费视频 | 波多野结衣高清一区二区三区 | 精品日本一区二区三区在线观看 | 在线亚洲高清揄拍自拍一品区 | 欧美成人高清在线播放 | 欧美人妻一区二区三区 | 亚洲色欲久久久综合网东京热 | 日韩在线不卡免费视频一区 | 亚洲乱码日产精品bd | 久久久精品欧美一区二区免费 | 精品 日韩 国产 欧美 视频 | 亚洲精品综合五月久久小说 | 亚洲中文字幕无码中字 | 亚洲成a人片在线观看无码3d | v一区无码内射国产 | 草草网站影院白丝内射 | 一区二区传媒有限公司 | 性开放的女人aaa片 | 亚洲 激情 小说 另类 欧美 | 亚无码乱人伦一区二区 | 亚洲精品综合五月久久小说 | 人妻少妇精品无码专区二区 | 美女张开腿让人桶 | 清纯唯美经典一区二区 | 国产午夜无码视频在线观看 | 精品无码国产一区二区三区av | 欧美 丝袜 自拍 制服 另类 | 亚洲日本va中文字幕 | 国产午夜视频在线观看 | 日本精品少妇一区二区三区 | 亚洲午夜久久久影院 | 国产精品久久久久9999小说 | 国产精品久久久久久亚洲毛片 | 国产av久久久久精东av | 国产真实伦对白全集 | 精品少妇爆乳无码av无码专区 | 成熟人妻av无码专区 | 亚洲色欲色欲天天天www | 中文字幕无码人妻少妇免费 | 久久伊人色av天堂九九小黄鸭 | 又大又黄又粗又爽的免费视频 | 国语自产偷拍精品视频偷 | 亚洲综合无码一区二区三区 | 强伦人妻一区二区三区视频18 | 色综合久久久久综合一本到桃花网 | 欧美丰满熟妇xxxx性ppx人交 | 丰满肥臀大屁股熟妇激情视频 | 亚洲精品国偷拍自产在线麻豆 | 99久久人妻精品免费一区 | 人妻中文无码久热丝袜 | 麻豆av传媒蜜桃天美传媒 |