精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

PHP開發必備 一步步學PHP模版引擎Dwoo

開發 后端
PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。它可以比 CGI或者Perl更快速的執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多。本文介紹了一款PHP的模版引擎Dwoo,一起來看。

PHP目前是使用最廣泛的腳本解析動態語言之一。在PHP的開發當中,開發者都很關心的一個問題是,如何最大程度地將頁面和商業邏輯分離。而目前的很多PHP的開發框架,在這方面都有很好的解決方案,比如Zend,Agavi,CakePHP和CodeIgniter。然而,假如你的項目不是太大而沒使用這些框架時,則可以選用一些開源的PHP模版引擎來實現頁面和邏輯的分離,目前比較著名的有Smarty。本文將介紹另一款新興的PHP模版引擎Dwoo,它同樣有很多優點,值得讀者去學習。

一、安裝Dwoo

首先到Dwoo的官方網站下載(http://www.dwoo.org)最新的版本1.1.7。在下載后,解壓dwoo,將解壓目錄命名為dwoo,當然,你也可以用pear的安裝方法安裝,方法為:

pear channel-discover pearhub.org

pear install pearhub/Dwoo

二、Dwoo模版簡介

在Dwoo中,跟象Smarty等模版引擎差不多的是,它允許用戶用普通的HTML編輯工具編輯表現層的頁面,然后在需要產生動態內容的地方用占位符表示。模版引擎在解析的時候,會把如數據庫中的或者業余邏輯計算結果填充到這些占位符中。下面先看一個簡單的例子。

我們先建立一個模版文件,Dwoo的模版文件默認是tpl,當然你也可以改為其他文件后綴。模版文件名為knock.tpl,把它保存在template文件夾中,內容為:

 

  1. <html> 
  2. <head></head> 
  3. <body> 
  4. <blockquote> 
  5. Knock knock! <br/> 
  6. Who's there? <br/> 
  7. {$name} <br/> 
  8. {$name} who? <br/> 
  9. {$punchline}  
  10. </blockquote> 
  11. </body> 
  12. </html> 

可以看到,在Dwoo中,模版文件中,把需要動態更替的內容用{$ }這樣的形式包裹起來,作為占位符,占位符當中的內容到時會被自動更替為實際的內容。接下來看如何使用Dwoo,代碼如下:

 

  1. <?php  
  2. include 'dwooAutoload.php';  
  3. // 創建dwoo實例  
  4. $dwoo = new Dwoo();  
  5. //讀取模版文件   
  6. $tpl = new Dwoo_Template_File('tmpl/knock.tpl');  
  7. // 對模版變量賦值  
  8. $data = array();  
  9. $data['name'] = 'Boo';  
  10. $data['punchline'] = 'Don\'t cry, it\'s only a joke';  
  11. // 將實際內容輸出到模版  
  12. $dwoo->output($tpl$data);  
  13. ?> 

下面是使用Dwoo的幾個步驟:

1、首先要包含Dwoo自動裝載類dwooAutoload.php,這個類是自動加載了Dwoo模版所需要的其他依賴的類和工具類;

2、創建Dwoo類的實例;

3、通過new Dwoo_Template_File的方法加載模版,其中的參數為模版文件所在的路徑;

4、設置要向模版文件中輸出的替換內容,在Dwoo中,只需要通過定義一個關聯數組的方法即可,數組中每個元素的名稱跟模版文件中的占位符一一對應,數組中的每個值,就是要替換模版中的實際內容;

5、通過調用output方法,將數據向模版中輸出,傳入的參數為輸出的數組內容和模版路徑。

下圖為輸出結果:

shuchujieguo

#p#

三、Dwoo語法講解

下面以實例的形式講解下Dwoo的語法,先來看最常用的if語句。

1) if 語句

下面是一個模版的例子:

  1. <html> 
  2. <head></head> 
  3. <body> 
  4. {if $auth == 0}  
  5. Not logged in  
  6. {else}  
  7. Logged in as: Anonymous User   
  8. {/if}  
  9. </body> 
  10. </html> 

可以看到,Dwoo中的if語句其實跟普通的if語句沒什么區別。接下來我們看下控制這個模版的php文件,如下:

  1. <?php  
  2. include 'dwooAutoload.php';  
  3. try {  
  4. $dwoo = new Dwoo();  
  5. $tpl = new Dwoo_Template_File('tmpl/auth.tpl');  
  6. $data = new Dwoo_Data();  
  7. $data->assign('auth', rand(0,1));  
  8. $dwoo->output($tpl$data);  
  9. } catch (Exception $e) {  
  10. echo "Error: " . $e->getMessage();   
  11. }  
  12. ?> 

注意,這里我們使用了new Dwoo_Data();這個Dwoo_Data()方法的優勢在于,它比較容易存放大量的數據,比用數組的方法去存儲數據方便多了,而且它本身提供了很多不同的方法去獲得,清理和刪除模版變量。這個例子中,用隨機數的方法產生了auth變量,結果可能為如下圖:

xiatu

當然,可以使用if elseif語句,比如模版中:

 

  1. <html> 
  2. <head></head> 
  3. <body> 
  4. {if $auth == 1}  
  5. Logged in as: Anonymous User   
  6. {elseif $auth == 2}  
  7. Logged in as: Administrator   
  8. {else}  
  9. Not logged in  
  10. {/if}  
  11. </body> 
  12. </html> 

2) LOOP循環語句

在Dwoo中,可以使用{loop}進行循環,動態產生數據,下面是例子:

  1. <html> 
  2. <head></head> 
  3. <body> 
  4. <ul> 
  5. {loop $items}  
  6. <li>{escape($item)}</li> 
  7. {/loop}  
  8. </ul> 
  9. </body> 
  10. </html> 

下面是產生數據的php文件:

  1. <?php  
  2. include 'dwooAutoload.php';  
  3. try {  
  4. $dwoo = new Dwoo();  
  5. $tpl = new Dwoo_Template_File('tmpl/list.tpl');  
  6. $data = new Dwoo_Data();  
  7. $items = array();  
  8. $items[] = array('item' => 'red');  
  9. $items[] = array('item' => 'yellow');  
  10. $items[] = array('item' => 'blue');  
  11. $items[] = array('item' => 'green');  
  12. $data->assign('items'$items);  
  13. $dwoo->output($tpl$data);  
  14. } catch (Exception $e) {  
  15. echo "Error: " . $e->getMessage();   
  16. }  
  17. ?> 

這里,我們生成了數組items,然后在模版文件中,通過{loop $items}即可循環輸出內容。結果如下圖:

jieguo

注意,這里使用了{escape($item)}的方法輸出每一行的內容,其中eascape是dwoo中使用的插件,是將所有內容在輸出前使用HTML編碼格式過濾,這可以防止XSS攻擊,是個很好的實踐。

而在Dwoo中,可以同樣使用{foreach}而達到同樣的效果,代碼如下:

 

  1. <html> 
  2. <head></head> 
  3. <body> 
  4. <ul> 
  5. {foreach $items item}  
  6. <li>{escape($item)}</li> 
  7. {/foreach}  
  8. </ul> 
  9. </body> 
  10. </html> 

同樣,foreach也可以使用如下的用法,即:

 

  1. <html> 
  2. <head></head> 
  3. <body> 
  4. <ul> 
  5. {foreach $items key value}  
  6. <li>{upper($key)} is for {$value}</li> 
  7. {/foreach}  
  8. </ul> 
  9. </body> 
  10. </html> 

而配合這個模版,PHP的控制頁面中的關聯數組的寫法如下:

  1. $data = new Dwoo_Data();  
  2. $items = array(  
  3. 'a' => 'apple',  
  4. 'b' => 'ball',  
  5. 'c' => 'cat',  
  6. 'd' => 'dog' 
  7. );  
  8. $data->assign('items'$items); 

這樣輸出結果如下圖:

shuchujieguo

我們既然學會了loop,下面來嘗試下從數據庫中取出數據集,并通過Dwoo顯示出來,下面是模版文件的主要部分:

 

  1. <body> 
  2. <table> 
  3. <tr class="heading"> 
  4. <td>Author</td> 
  5. <td>Title</td> 
  6. </tr>   
  7. {loop $records}  
  8. <tr> 
  9. <td>{$author}</td> 
  10. <td>{$title}</td> 
  11. </tr>   
  12. {/loop}  
  13. </table> 
  14. </body> 

而PHP文件代碼如下,其中使用了PDO去訪問數據庫:

 

  1. <? php  
  2. include 'dwooAutoload.php';  
  3. // 連接數據庫  
  4. try {  
  5. $dbh = new PDO('mysql:dbname=library;host=localhost''user''pass');  
  6. } catch (PDOException $e) {  
  7. echo "Error: Could not connect. " . $e->getMessage();  
  8. }  
  9. $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
  10. try {  
  11. $sql = "SELECT a.AuthorName AS author, t.TitleName AS title FROM author AS a, title AS t, author_title AS at WHERE a.AuthorID = at.AuthorID AND t.TitleID = at.TitleID ORDER BY author LIMIT 0,20";  
  12. $sth = $dbh->query($sql);  
  13. while ($row = $sth->fetchObject()) {  
  14. $records[] = array('author' => $row->author, 'title' => $row->title);  
  15. }  
  16. //關閉數據庫連接  
  17. unset($dbh);   
  18. $dwoo = new Dwoo();  
  19. $tpl = new Dwoo_Template_File('tmpl/books.tpl');  
  20. $data = new Dwoo_Data();  
  21. $data->assign('records'$records);  
  22. $dwoo->output($tpl$data);   
  23. } catch (PDOException $e) {  
  24. echo "Error: Could not execute query \"$sql\". " . $e->getMessage();   
  25. unset($dbh);  
  26. } catch (Exception $e) {  
  27. echo "Error: " . $e->getMessage();   
  28. }   
  29. ?> 

 

#p#

四、模版組合

在頁面設計中,常用的最佳實踐是把一個復雜的頁面劃分為不同的部分,同樣模版文件中也應該指定不同的部分,最后再將其組合起來,比如下圖是常件的模版件結構:

mobanjianjiegou

可以看到有頭部,尾部和頁面的主體三部分組成,下面給出它們的模版文件header.tpl:

 

  1. <!-- BEGIN header.tpl --> 
  2. <html> 
  3. <head></head> 
  4. <body> 
  5. <table width="100%" border="1"> 
  6. <tr> 
  7. <td align="center"><a href="#">Home</a></td> 
  8. <td align="center"><a href="#">News</a></td> 
  9. <td align="center"><a href="#">Weather</a></td> 
  10. <td align="center"><a href="#">Hotels</a></td> 
  11. <td align="center"><a href="#">Dining</a></td> 
  12. </tr> 
  13. </table> 
  14. <p /> 
  15. <h2>{$title}</h2> 
  16. <p /> 
  17. <!-- END header.tpl --> 
  18. footer.tpl  
  19. <!-- BEGIN footer --> 
  20. <table width="100%" align="center"> 
  21. <tr> 
  22. <td align="center"><font size="-2">&copy; {$year}. All rights reserved.</font></td> 
  23. </tr> 
  24. </table> 
  25. </body> 
  26. </html> 

而Dwoo中,使用include可以將不同的模版包含到同一個模版中去,比如下面是框架主模版文件main.tpl:

 

  1. {include(file='header.tpl')}  
  2. <!-- BEGIN main.tpl --> 
  3. <table border="1"> 
  4. <tr> 
  5. <td valign="top"> 
  6. <strong>{$headline}</strong> 
  7. <p /> 
  8. {$content}  
  9. </td> 
  10. <td valign="top" align="center" width="25%"> 
  11. <strong>Special Feature</strong><br /> 
  12. {$feature}  
  13. </td> 
  14. </tr> 
  15. </table> 
  16. <!-- END main.tpl --> 
  17. {include(file='footer.tpl')} 

而框架文件的php文件如下,可以為主框架模版中的變量賦值:

  1. <?php  
  2. include 'dwooAutoload.php';  
  3. try {  
  4. $dwoo = new Dwoo();  
  5. $tpl = new Dwoo_Template_File('tmpl/main.tpl');  
  6. $data = new Dwoo_Data();  
  7. $data->assign('title''Welcome to London!');  
  8. $data->assign('headline''Playing in the Park');  
  9. $data->assign('content''It\'s a warm summer day, and Simon finds the lake in St. James Park too inviting for words...');  
  10. $data->assign('feature''Tower Bridge - Snapshots from the Top');  
  11. $data->assign('year'date('Y'mktime()));  
  12. $dwoo->output($tpl$data);  
  13. } catch (Exception $e) {  
  14. echo "Error: " . $e->getMessage();   
  15. }  
  16. ?> 

可以得出如下結果:

jieguo

而另外的實現方法,是不使用include,而是在主框架模版中如下設置:

 

  1. {$header}  
  2. <!-- BEGIN main.tpl --> 
  3. <table border="1"> 
  4. <tr> 
  5. <td valign="top"> 
  6. <strong>{$headline}</strong> 
  7. <p /> 
  8. {$content}  
  9. </td> 
  10. <td valign="top" align="center" width="25%"> 
  11. <strong>Special Feature</strong><br /> 
  12. {$feature}  
  13. </td> 
  14. </tr> 
  15. </table> 
  16. <!-- END main.tpl --> 
  17. {$footer} 

而在PHP文件中,再動態設置header和footer的變量的值,

  1. $data->assign('header',$dwoo->get(new Dwoo_Template_File('tmpl/header.tpl'), $data));  
  2. $data->assign('footer',$dwoo->get(new Dwoo_Template_File('tmpl/footer.tpl'), $data)); 

這里使用了Dwoo中的get方法,將兩個模版文件中的內容提取出來,設置到header和footer兩個變量中去。

#p#

五、Dwoo中的插件機制

在Dwoo中,為開發者提供了大量方便的插件,比如前文提到的escape過濾功能,也是Dwoo 的插件之一。下面再學習一個同樣功能的插件auto_esacpe,它其實實現的是跟escape一樣的功能,但它可以針對一整段的模版變量進行格式化,比如,如下的模版:

 

  1. <html> 
  2. <head></head> 
  3. <body> 
  4. {auto_escape on}  
  5. {$html}  
  6. {/auto_escape}  
  7. </body> 
  8. </html> 

這里使用了{auto_escape on},表明在 {/auto_escape}前的輸出全部要進行HTML格式化,考察如下的php腳本:

  1. <?php  
  2. include 'dwooAutoload.php';  
  3. try {  
  4. $dwoo = new Dwoo();  
  5. $tpl = new Dwoo_Template_File('tmpl/out.tpl');  
  6. $data = array();  
  7. $data['html']= '<span id="ack">Welcome to Jack & Jill\'s humble abode.</span>';  
  8. $dwoo->output($tpl$data);  
  9. } catch (Exception $e) {  
  10. echo "Error: " . $e->getMessage();   
  11. }  
  12. ?> 

其輸出為如下圖:

shuchujieguo

同樣,Dwoo也有象php中的strip_tags方法,用來去掉HTML標記,比如:

 

  1. <html> 
  2. <head></head> 
  3. <body> 
  4. {strip_tags($html)}  
  5. </body> 
  6. </html> 

對應的PHP腳本為:

  1. $data = array();  
  2. $data['html'] = '<a href="http://www.google.com">Search</a>'

那么將會輸出如下結果:

shuchujieguo

下面再介紹Dwoo中關于日期格式化的處理,其中可以使用date_format這個插件,這個插件需要傳入兩個參數,一個是要處理的日期,另外一個是指定用什么格式去格式化處理日期,舉個例子:

  1. <html> 
  2. <head></head> 
  3. <body> 
  4. {date_format $date "%d.%m.%Y"}  
  5. <br/> 
  6. {date_format $date "%B %d, %Y %I:%M %p"}  
  7. </body> 
  8. </html> 

處理的PHP代碼的核心部分:

  1. $data = array();  
  2. $data['date'] = '14 July 2010 21:35'

下面為其輸出:

shuchujieguo

小結

在本文中,介紹了PHP模版引擎Dwoo的基本原理和用法,給讀者一個快速的入門,在下一篇中,將深入介紹挖掘Dwoo中的一些特色功能。

【編輯推薦】

  1. PHP開發必備 PHP持續集成工具介紹(上)
  2. PHP開發必備 PHP持續集成工具介紹(下)
  3. PHP正則表達式 PHP中的正則函數
  4. PHP中幾個常用的時間應用方式
責任編輯:于鐵 來源: IT168
相關推薦

2011-05-19 11:03:02

PHPDwoo

2018-06-11 15:30:12

2017-01-19 21:08:33

iOS路由構建

2018-12-24 10:04:06

Docker存儲驅動

2019-03-05 14:09:27

Docker存儲容器

2019-07-09 15:23:22

Docker存儲驅動

2023-12-26 07:59:01

2016-11-02 18:54:01

javascript

2017-12-25 11:50:57

LinuxArch Linux

2010-03-04 16:28:17

Android核心代碼

2021-01-03 15:07:16

開發編程語言后端.

2024-09-30 09:56:59

2024-08-30 08:30:29

CPU操作系統寄存器

2011-05-10 10:28:55

2024-08-06 09:29:54

程序機器指令字符串

2020-12-24 11:19:55

JavaMapHashMap

2009-12-17 16:36:23

無線路由設置密碼

2015-07-27 16:06:16

VMware Thin虛擬化

2019-04-01 10:15:02

2025-09-30 09:40:33

點贊
收藏

51CTO技術棧公眾號

国产欧美精品一区二区三区-老狼| 欧美日韩亚洲综合在线| 久久偷窥视频| 中文在线最新版天堂| 婷婷成人基地| 精品国产凹凸成av人导航| 97国产精东麻豆人妻电影| www.亚洲.com| 国产成人免费视频一区| 欧美做受高潮1| 日韩欧美国产成人精品免费| 老司机aⅴ在线精品导航| 欧美性一二三区| 久艹视频在线免费观看| www.国产精品.com| 99久久精品国产精品久久| 国产精品成人在线| 久久午夜鲁丝片午夜精品| 视频国产一区| 亚洲精品一区二区三区影院 | 亚洲每日更新| 日韩在线视频观看| av无码av天天av天天爽| 不卡一区视频| 欧美性大战久久久| 国产午夜伦鲁鲁| 欧美xxxx视频| 亚洲视频免费观看| 亚洲国内在线| 欧美xxx.com| 成人精品视频.| 91欧美视频网站| 丰满人妻一区二区三区四区| 国产一级一区二区| 久久久久久国产三级电影| 开心激情五月网| 成久久久网站| 亚洲精品第一页| 国产精品亚洲一区二区无码| 国产色99精品9i| 欧美福利视频导航| 亚洲免费av一区| 91超碰碰碰碰久久久久久综合| 欧美日韩国产一区二区| www.国产在线视频| 在线免费av导航| 亚洲激情中文1区| 日本福利视频导航| 韩国av网站在线| 国产精品电影院| 亚洲资源在线网| 四虎久久免费| 亚洲色图另类专区| 一区二区三区视频在线播放| 日本高清中文字幕在线| 国产亚洲制服色| 日本黄网免费一区二区精品| 激情视频在线观看免费| 久久精品亚洲一区二区三区浴池| 欧美三级网色| 91涩漫在线观看| 亚洲欧美自拍偷拍| 肉大捧一出免费观看网站在线播放| 麻豆传媒在线免费看| 亚洲女厕所小便bbb| 国产一级黄色录像片| 欧美1234区| 亚洲一区在线看| 黄色影院一级片| 亚洲精品.com| 欧美丰满嫩嫩电影| 美女流白浆视频| 日韩三级av| 在线成人中文字幕| 岛国毛片在线观看| 日韩亚洲精品在线| 国产精品成人国产乱一区| 97国产精品久久久| 成年人国产精品| 欧美最大成人综合网| 萌白酱视频在线| 精品国产欧美日韩| 久久综合久久八八| 日本a在线观看| 日日夜夜免费精品| 亚洲淫片在线视频| 污污网站免费在线观看| 中文一区在线播放| 久久精品xxx| 欧美一区 二区 三区| 欧美夫妻性生活| 久久人人爽人人人人片| 青青草国产成人a∨下载安卓| 美女撒尿一区二区三区| 国产成人免费看| 国产尤物一区二区在线| 精品1区2区| 麻豆网站在线看| 欧美性猛xxx| 成人高清在线观看视频| 丝袜连裤袜欧美激情日韩| 日韩在线观看免费全| 免费网站看av| 青青草伊人久久| 国产精品我不卡| 69视频在线观看| 午夜精品在线看| 天堂中文av在线| 免费成人av| 欧美区二区三区| 国产偷人爽久久久久久老妇app| 成人一区二区三区在线观看| 日韩中文字幕av在线| 超碰中文在线| 7878成人国产在线观看| 国产三级av在线播放| 韩国久久久久| 91香蕉亚洲精品| 国产综合在线观看| 婷婷久久综合九色综合伊人色| 中文字幕66页| 精品国产1区| 欧美性受xxx| 成人小说亚洲一区二区三区| 亚洲欧洲99久久| 免费看涩涩视频| 蜜桃a∨噜噜一区二区三区| 欧美高清不卡在线| 国产日韩在线观看一区| 国产精品全国免费观看高清 | 美女在线视频一区| 久久久国产精品一区二区三区| 在线电影福利片| 69堂亚洲精品首页| 美女网站视频色| 日产国产欧美视频一区精品| 久久久久久99| 欧美裸体视频| 亚洲精品久久久久久下一站 | 免费黄网站在线| 欧美视频一二三区| 最近中文字幕免费| 天堂在线一区二区| 蜜桃视频成人| 三级中文字幕在线观看| 亚洲激情第一页| 日韩 欧美 综合| 99热99精品| 免费观看美女裸体网站| 欧美色图五月天| 欧美洲成人男女午夜视频| 四虎精品成人影院观看地址| 精品久久久久久国产91| 亚洲av无码国产精品久久| 亚洲男人影院| 日本一区二区在线视频| 91福利精品在线观看| 日韩在线免费av| 国产成人精品a视频| 亚洲在线视频免费观看| 国产性生活毛片| 先锋影音久久久| 日本免费高清一区二区| 福利一区和二区| 精品国产一区二区三区在线观看 | 日本另类视频| 日韩中文字幕av| 国产裸体无遮挡| 亚洲国产一区二区a毛片| 国产麻豆xxxvideo实拍| 三级欧美在线一区| 一级日韩一区在线观看| 日韩成人视屏| 2021国产精品视频| av在线女优影院| 91精品国产综合久久香蕉麻豆| 久久综合亚洲色hezyo国产| www.爱久久.com| 可以免费在线看黄的网站| 天天色综合色| 国内一区在线| 国产一区影院| 欧美激情在线有限公司| 每日更新在线观看av| 欧美精品三级在线观看| 男人的天堂一区| 国产精品毛片大码女人| 丰满熟女人妻一区二区三区| 亚洲免费一区二区| 亚洲综合激情五月| 日本午夜精品| 91免费福利视频| 手机在线观看av| 日韩在线观看精品| 三级在线视频| 欧美一区二区日韩一区二区| 制服.丝袜.亚洲.中文.综合懂色| 国产精品久久免费看| 国产麻豆剧传媒精品国产av| 毛片av一区二区| 欧美 日韩 国产在线观看| 久久精品国产68国产精品亚洲| 国产超碰91| 欧美日韩卡一| 欧美最猛性xxxxx(亚洲精品)| 国产黄色在线观看| 亚洲人成网站777色婷婷| 亚洲精品久久久久avwww潮水| 91福利国产成人精品照片| 亚洲一区二区91| 国产精品麻豆久久久| 成人午夜福利一区二区| 粉嫩av一区二区三区粉嫩 | 亚洲精品乱码日韩| 国产91成人video| 欧美1234区| 久久午夜a级毛片| av中文天堂在线| 亚洲精品在线不卡| 欧美特级特黄aaaaaa在线看| 538prom精品视频线放| 久久久久久久久久成人| 午夜婷婷国产麻豆精品| 免费视频一二三区| 亚洲日本va在线观看| 久久久久亚洲AV成人无在| 91麻豆文化传媒在线观看| 中文在线观看免费视频| 国产精品亚洲成人| 天堂av8在线| 免费成人在线影院| 午夜激情福利在线| 久久久久一区| 久久精品香蕉视频| 亚洲欧美日本视频在线观看| xxxx18hd亚洲hd捆绑| 亚洲视频狠狠| 嫩草影院中文字幕| 午夜日韩视频| 丁香婷婷综合激情| 欧美精品97| www成人免费| 亚洲视频精品| 日韩伦理在线免费观看| 怡红院精品视频在线观看极品| 欧美交换配乱吟粗大25p| 最新国产精品| 99er在线视频| 亚洲网站啪啪| 亚洲熟妇国产熟妇肥婆| 在线亚洲欧美| 国产超级av在线| 久久久夜精品| 亚洲欧美日韩一级| 美女www一区二区| 亚洲第一成肉网| 国产精品一区二区久久不卡| 色婷婷狠狠18禁久久| 成人v精品蜜桃久久一区| 国产一线在线观看| 91网页版在线| 九一在线免费观看| 亚洲欧洲一区二区三区| 欧美成欧美va| 天天免费综合色| 亚洲 欧美 日韩 在线| 在线观看日韩电影| 国产精品呻吟久久| 亚洲第一黄色网| 女人天堂在线| 久久久国产一区二区三区| 亚洲卡一卡二| 91成人精品网站| 国产精品第一| 97操在线视频| 五月天亚洲一区| 亚洲日本无吗高清不卡| 中国精品18videos性欧美| 国产精品入口芒果| 日本vs亚洲vs韩国一区三区二区| www.com久久久| av影院午夜一区| 国产精品www爽爽爽| 一区二区三区蜜桃网| 国产区在线观看视频| 欧美日韩一区中文字幕| 国产999久久久| 亚洲精品美女免费| 快射视频在线观看| 97超级碰碰碰久久久| 亚洲精品毛片| 欧美精品亚洲精品| 你懂的一区二区| 国产视频一区二区三区在线播放| 国产精品资源网| 女人又爽又黄免费女仆| 一区二区三区蜜桃网| 最新在线中文字幕| 亚洲电影免费观看高清完整版在线观看 | 五月婷婷中文字幕| 91精品婷婷国产综合久久竹菊| 婷婷色在线视频| 久久久成人精品| 在线观看v片| 不卡的av一区| 成人综合专区| 男人亚洲天堂网| 成人小视频在线| 97在线观看免费高| 一本到不卡精品视频在线观看| 国产精品一区二区av白丝下载| 亚洲欧美日韩精品| 国产在线xxx| 91日韩在线视频| 欧洲杯什么时候开赛| 欧美,日韩,国产在线| 国产精品99久久久久久宅男| 西西444www无码大胆| 亚洲成人综合视频| 99国产精品久久久久久久成人| 国产亚洲免费的视频看| 鲁鲁在线中文| 国产乱码精品一区二区三区日韩精品| 99免费精品| 超碰在线公开97| 国产欧美精品在线观看| www五月天com| 日韩av在线免播放器| av中文字幕在线看| 亚洲影院色无极综合| 亚洲天堂免费| 在线观看免费视频高清游戏推荐| 久久视频一区二区| 韩国av免费观看| 亚洲国产精品99久久| av在线加勒比| 国产精品高清一区二区三区| 欧美 日韩 国产 一区| 无码人妻少妇色欲av一区二区| 亚洲欧美视频在线观看视频| 国产精品无码专区av免费播放| 最近2019中文字幕大全第二页 | 日本高清视频一区二区| 青青青草网站免费视频在线观看| 久久免费在线观看| 国产伦精品一区二区三区免费优势 | 91吃瓜网在线观看| 欧美最猛性xxxxx免费| 欧美理论电影在线精品| 欧美色图另类小说| 91麻豆福利精品推荐| 国产精品免费精品一区| 亚洲精品网址在线观看| 亚洲美女久久精品| 人禽交欧美网站免费| 蜜臀av性久久久久蜜臀aⅴ流畅| 摸摸摸bbb毛毛毛片| 精品视频资源站| 成视频免费观看在线看| 91手机在线观看| 禁久久精品乱码| avtt香蕉久久| 欧美在线视频全部完| 久操免费在线| 国产精品久久国产精品| 国产九九精品| 国产又黄又粗的视频| 91精品免费观看| h片精品在线观看| 免费国产在线精品一区二区三区| 老牛嫩草一区二区三区日本| 中文乱码字幕高清一区二区| 91精品国产黑色紧身裤美女| 日韩免费影院| 欧美日韩综合网| 国产一区二区免费视频| 国产在线一二区| 亚洲天堂影视av| 日本一区二区三区视频在线看 | 美腿丝袜亚洲三区| 久久久精品国产sm调教| 精品视频中文字幕| 精品女同一区二区三区在线观看| 国产亚洲精品久久久久久久| 99久久久国产精品| 一级特黄特色的免费大片视频| 久久久久久久一| 成人精品亚洲| 成人做爰www看视频软件| 日本高清不卡视频| 污污的网站在线免费观看| 欧美在线视频一区二区三区| 国产在线视频一区二区| 天天操天天摸天天干| 久久精品视频99| 亚洲肉体裸体xxxx137| 性鲍视频在线观看| 欧洲一区在线电影| 超碰在线中文字幕| 欧美aaa在线观看|