久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

smarty常用關鍵字 PHP模板引擎smarty的使用方法和詳細介紹

瀏覽:6日期:2022-06-09 13:10:53

一、什么是smarty?
smarty是一個使用PHP寫出來的模板,PHP模板引擎,它提供了邏輯與外在內容的分離,簡單的講,目的就是要使用PHP程序員同美工分離,使用的程序員改變程序的邏輯內容不會影響到美工的頁面設計,美工重新修改頁面不會影響到程序的程序邏輯,這在多人合作的項目中顯的尤為重要。

二、smarty優點:
1. 速度:采用smarty編寫的程序可以獲得最大速度的提高,這一點是相對于其它的模板引擎技術而言的。
2. 編譯型:采用smarty編寫的程序在運行時要編譯成一個非模板技術的PHP文件,這個文件采用了PHP與HTML混合的方式,在下一次訪問模板時將WEB請求直接轉換到這個文件中,而不再進行模板重新編譯(在源程序沒有改動的情況下)
3. 緩存技術:smarty選用的一種緩存技術,它可以將用戶最終看到的HTML文件緩存成一個靜態的HTML頁,當設定smarty的cache屬性為true時,在smarty設定的cachetime期內將用戶的WEB請求直接轉換到這個靜態的HTML文件中來,這相當于調用一個靜態的HTML文件。
4. 插件技術:smarty可以自定義插件。插件實際就是一些自定義的函數。
5. 模板中可以使用if/elseif/else/endif。在模板文件使用判斷語句可以非常方便的對模板進行格式重排。

三、不適合使用smarty的地方:
1. 需要實時更新的內容。例如像股票顯示,它需要經常對數據進行更新,這類型的程序使用smarty會使模板處理速度變慢。
2. 小項目。小項目因為項目簡單而美工與程序員兼于一人的項目,使用smarty會喪失php開發迅速的優點。

四、smarty目錄結構及版本
打開smarty的官方網站,www.smarty.net/download.php。下載Smarty 3.1.12。有tar.gz和zip分別適用于linux和windows版本。
下載好后Smarty-stable-3.1.12解壓縮會得到一個 Smarty-3.1.12 文件夾,里面有兩個主要文件夾demo和libs

demo文件夾為示例文件夾,里面包含默認文件夾結構,是我們要進行編寫程序代碼的主要文件夾。demo里文件夾的名稱都是smarty默認的目錄結構名稱,可以通過改smarty對應屬性值,再把文件夾名改成我們想要的名稱。
libs為smarty代碼源文件夾,一般不動。

/libs/Smarty.class.php  #主文件
/libs/sysplugins/  #內部plugin
/libs /plugins/  #外部plugin,可自由擴充
/demo/cahce/  #放置緩存文件
/demo/configs /  #放置可以載入的配置文件
/demo/templates/  #放置模板文件
/demo/templates_c/  #放置對模板編譯后的文件

可以把解壓得到的 Smarty-3.1.12 文件夾名改成我們想要的項目名,demo也可以改成我們想要的具體存放編碼的文件夾的名稱

2、調試Smarty-3.1.12
創建自己的文件,在demo文件夾下創建index.php。
在templates目錄中創建模板index.tpl
(幾乎可以是任何文本文件的擴展名,常用的是tpl,php,html,不建議使用后兩者,因為可以從瀏覽器直接訪問而不安全。可以對apache的httpd.conf進行設置,禁止直接訪問.tpl文件。或者將templats目錄放在網站文檔樹之外。)


//index.php代碼
require("../libs/Smarty.class.php");
$smarty = new Smarty;
//在調用的模板里可以通過{$name}來輸出name的值zhang,{}為這里的smarty分界符
$smarty->assign("name","zhang");
//調用模板tpl文件里不能執行PHP語句塊
$smarty->display("templates/index.tpl");


/*
index.tpl頁面內容
<html>
<body>
<span>你好, {$name}</span>
</body>
</html>
*/

/*
Smarty編譯時的處理過程是源php文件->模板文件(可能調用多個或多次)->源php文件。。。
也就是說不影響原php文件的其他處理和輸出。所以smarty模板文件可以是完整的html,也可以是其中一部分。

smarty處理過程
smarty將php源文件,首先編譯成中間文件(也是php),如果啟用緩存,再根據編譯文件生成緩存文件(也是php),需要緩存的部分全部是硬編碼。
之后的每次訪問都會訪問編譯文件(如果編譯文件已經存在),一次編譯多次調用(可以是單文件的多次,也可以是多文件的多次),如果啟用緩存且有緩存文件而且沒有過期,則直接訪問緩存文件,跳過編譯文件。
編譯文件一經生成,就不會被自動更新,除非模板文件或者配置文件更改。源php文件修改是不會引發重新編譯的。一旦編譯文件重新生成,緩存文件也必然重新生成。
*/

//Smarty允許有兩種特殊的編譯設置存在:
//1、 任何時候都不自動重新編譯(上線階段):只有沒有該文件的編譯文件時才生成,模板文件或者配置文件的更改,不會引發重新編譯。
$smarty->setCompile_check(false);//默認為true,false表示任何時候都不在文件發生變更的情況下生成編譯文件,除了無編譯文件。
$smarty->getCompile_check();//獲得當前編譯檢查的設置

//2、任何時候都重新編譯(調試階段):任何時候都重新編譯。
$smarty->setForce_compile(true);//默認為false,true表示每次都重新編譯(啟用緩存的話,每次都重新緩存)
$smarty->getForce_compile();//獲得當前強制編譯的設置

//開啟緩存
$smarty->setCaching(true);
$smarty->getCaching();//獲取當前緩存狀態,默認是false關閉的
$smarty->setcache_lifetime(60);//設置緩存時間單位秒

//{*模版文件*}
//{nocache}
//{$name}
//{/nocache}
//{*如果開啟緩存的話放在nocache標簽內的變量不會緩存,每次讀取PHP源文件的值*}

/*
smarty分界符
在模板文件中,區分普通html代碼和smarty代碼靠的是分界符。默認是 {} ,但可能會與js和css相沖突。可以進行變更。
在3.0中模板標簽將不支持空格,如{ $abc }在Smarty2中可以識別的,但是3.0里頭就不行了,必須這樣{$abc},這樣是為了能夠更好的支持javascript和css。
*/

$smarty->left_delimiter = "{" //左分界符,2.0屬性,3.0沿用
$smarty->right_delimiter = "}"

/*
分界符就相當于PHP的echo,分界符中的值都將輸出,除非賦值等操作
smarty tpl文件中分界符中兩個**之間的內容為注釋內容如
tpl文件:
{*這是模板注釋內容*}
*/

//設置緩存目錄路徑,不設默認"cache"
$smarty->setCacheDir("cache");
//獲取緩存目錄路徑
$smarty->getCacheDir();

//設置配置目錄路徑,不設默認"configs"
$smarty->setConfigDir("configs");

//添加配置目錄路徑,所有路徑將會以數組形式保存,調用文件時將在所有路徑中查找
$smarty->addConfigDir("configs/test");

//獲取配置目錄路徑的數組
$smarty->getConfigDir();

//設置插件目錄路徑,不設默認"plugins"
$smarty->setPluginsDir("plugins");

//添加插件目錄路徑,所有路徑將會以數組形式保存,調用文件時將在所有路徑中查找,plugins文件夾里放的就是可以在前臺或后臺按不同規則調用的函數的存儲文件,文件名及函數名的命名按不同調用規則有不同寫法要求
$smarty->addPluginsDir("plugins/test");

//獲取插件目錄路徑的數組
$smarty->getPluginsDir();

//設置模板目錄路徑,不設默認"templates"
$smarty->setTemplateDir("templates");

//添加模板目錄路徑,所有路徑將會以數組形式保存,調用文件時將在所有路徑中查找
$smarty->addTemplateDir("templates/test");

//獲取模板目錄路徑的數組
$smarty->getTemplateDir();

//設置編譯目錄路徑,不設默認"templates_c"
$smarty->setCompileDir("templates_c");

//獲取編譯目錄路徑
$smarty->getCompileDir();

//PHP模板引擎smarty常用關鍵字 和 語法
smarty其他常用關鍵字

<{section loop= $varName[,start=$start,step=$setp,max=$max,$show=true]}>
name:section的名稱,不用加$;
$loop:要循環的變量,程度中要使用assign對這個變量進行操作。
$start:開始循環的下標。默認為0;
$step:每次循環下標的增數;
$show : boolean型。決定是否對于這塊進行顯示。默認為true;
<{section}>的屬性;

{$varName|count}:統計循環次數 {$smarty.section.l.index}
{$smarty.section.l.iteration}:和index不同從1開始;

index:循環下標。默認為0;
index_prev:當前下標的上一個值,默認為-1;
index_next:當前下標的下一個值,默認為1;
first:是否為第一下循環;
last:是否為最后一個循環;
iteration:循環個數;
rownum:當前行號,iteration的別名;
loop:最后一個循環號。Section的循環次數;
show:是否顯示;

smarty 系統變量
{* 顯示URL中的page值($_GET)http://www.example.com/index.php?page=foo *}
{$smarty.get.page}

{* 顯示來自一個表單的"page"變量($_POST["page"])*}
{$smarty.post.page}

{* 顯示COOKIE變量"username"的值($_COOKIE["username"])*}
{$smarty.cookies.username}

{* 顯示服務器變量"SERVER_NAME"($_SERVER["SERVER_NAME"])*}
{$smarty.server.SERVER_NAME}
{$smarty.server.PHP_SELF}
{$smarty.server.SCRIPT_NAME}

{* 顯示系統環境變量"PATH" *}
{$smarty.env.PATH}

{* 顯示PHP會話變量"id"($_SESSION["id"])*}
{$smarty.session.id}

{* 顯示變量"username",不論來自get/post/cookies/server/env *}
{$smarty.request.username}
$smarty}保留變量可以被用于訪問一些特殊的模板變量,以下是全部頁面請求變量。

以下是訪問頁面請求變量諸如get,post,cookies,server,enviroment和session變量的例子. 例如{$smarty.server.SERVER_NAME}取得服務器變量,{$smarty.env.PATH}取得系統環境變量path,{$smarty.request.username}取得get/post/cookies/server/env的復合變量。

{$smarty.now}變量用于訪問當前時間戳.
可以用 date_format調節器格式化輸出. 例如{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}

{$smarty.const}
你可以直接訪問PHP常量. 例如{$smarty.const._MY_CONST_VAL}

{$smarty.capture}
可以通過{capture}..{/capture}結構 截取的輸出可以使用{$smarty} 變量訪問.

{$smarty.config}
{$smarty}變量 可以訪問已經加載的config變量.

例如 {$smarty.config.foo}就可以表示 {#foo#}.

{$smarty.section}, {$smarty.foreach}
{$smarty} 變量可以訪問"section"和"foreach"循環的屬性.

{$smarty.template}
顯示當前被處理的模板的名字.

{$smarty.version}
顯示smarty模板的版本

{$smarty.ldelim}
顯示左分隔符

{$smarty.rdelim}
顯示右分隔符$smarty}保留變量可以被用于訪問一些特殊的模板變量,以下是全部頁面請求變量。

以下是訪問頁面請求變量諸如get,post,cookies,server,enviroment和session變量的例子. 例如{$smarty.server.SERVER_NAME}取得服務器變量,{$smarty.env.PATH}取得系統環境變量path,{$smarty.request.username}取得get/post/cookies/server/env的復合變量。

{$smarty.now}變量用于訪問當前時間戳.
可以用 date_format調節器格式化輸出. 例如{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}

{$smarty.const}
你可以直接訪問PHP常量. 例如{$smarty.const._MY_CONST_VAL}

{$smarty.capture}
可以通過{capture}..{/capture}結構 截取的輸出可以使用{$smarty} 變量訪問.

{$smarty.config}
{$smarty}變量 可以訪問已經加載的config變量.

例如 {$smarty.config.foo}就可以表示 {#foo#}.
{$smarty.section}, {$smarty.foreach}
{$smarty} 變量可以訪問"section"和"foreach"循環的屬性.

{$smarty.template}
顯示當前被處理的模板的名字.

{$smarty.version}
顯示smarty模板的版本

{$smarty.ldelim}
顯示左分隔符

{$smarty.rdelim}
顯示右分隔符

/*
我們可以建不同的php源文件文件夾,把編寫的php文件按一定的分類放在不同的文件夾中。
然后在每個文件夾中都創建一個自定義的config文件,在config文件中創建一個新的$smarty = new Smarty 對象
然后把所有不同的文件夾的php文件的緩存,配置文件,插件,模版,編譯目錄都設置到同一個緩存,配置文件,插件,模版,編譯目錄
讓該文件夾下所有PHP源文件都引用該配置文件即可獲取相同配置
*/

//模版變量
$arr = array(array("zhang","li"),"a"=>array("liu","wang"),array("ming","yi"));
$smarty->assign("testArr", $arr);

//設置模版變量,為將要調用的模版提供變量,在接下來調用的模版中可以通過{$testArr}或者{$testArr["a"][0]}或者{$testArr.a.0}來訪問具體某數組元素
//在模版中可以直接通過 {$testArr = "testValue" scope="global"} 來更改傳過來的模板變量的值(如果不存在則在模板中創建并設置該模版變量),scope屬性是標注模板變量使用范圍的可不寫
//在模版中更改或創建成其他數組 {$testArr = [1,2,3]}也可以{$testArr = [1,"a"=>2,2=>3]}也可以{$testArr[] = 4}或其他類似PHP中創建數組方式
//php源文件可通過 $smarty->getTemplateVars("testArr") 獲取指定模版變量,如要獲取模板中改變或創建的模版變量,在模板中創建或更改其值時必須加上scope屬性并把值設置為scope="global"或scope="parent"

class A{
  function aa($nam){
    echo $nam;
  }
}

$smarty->assign("obj", new A);
//設置的模版變量是對象時在模版頁可以如下這樣調用,給模版傳類對象時也是傳址

//{$obj->aa("my name is y")}
//Smarty可以識別嵌入在雙引號中的模版變量,只要此變量只包含數字、字母、下劃線。但貌似只支持能直接轉換成字符串的模版變量


$smarty->assign("testStr", "this is testStr");
//模板中可通過{"$testStr OK !"}來訪問

/*
tpl模板包含模板

模板文件:
{include file="header.tpl"}

header.tpl內容:
<span>這是頂部內容!!,歡迎你,{$name}</span>

模板包含模板也可以是這樣格式
{include file="header.tpl" testVar="這是頂部內容!!!"}
header.tpl則可以通過{$testVar}使用調用頁包含時傳來的模板變量
header.tpl內容:
<span>{$testVar},歡迎你,{$name}</span><hr />
*/

/*
可以預先規定一系列的變量與值的對應,并放在配置文件中,在使用時載入。
配置文件默認放在configs文件夾中,可以自定義修改文件夾名。
*/

/*
#模板test.conf文件:
#鍵對應的值可以不用引號括起來
title = Welcome to Smarty!!
cutoff_size = 40

[china]
language = chinese

[england]
language = english

#[china],[england]為標簽,未設置標簽的鍵值為全局的只要調用該配置文件就可以在模版中使用,設置了標簽的鍵值只有在調用配置文件時指定了對應標簽才可以使用

#在PHP源文件調用配置文件語句$smarty->configLoad("test.conf", $sections = "england");該語句下面調用的模版才可以使用該配置文件,通過$sections屬性指定使用哪個標簽下的鍵和值

#$sections參數可以不寫,默認值為null,$smarty->configLoad("test.conf")則只使用全局的鍵值,而不能使用標簽下的鍵值

#在模版下通過{config_load file="test.conf" section="china" scope="global"}語句調用配置文件

#section屬性可以不寫,默認是null,scope屬性必須寫{config_load file="test.conf" scope="global"}

#section屬性可賦三種值

#local 只有當前模版可以使用該配置文件

#parent 只有當前模版引入該配置文件語句后包含的模版中,或在php源文件中smarty對象調用該配置文件后調用的模版中可以使用該配置文件中的鍵值

#global 測試效果和parent相同

#在模版中通過{#language#}來使用鍵值,也可以通過{$smarty.config.language}來訪問配置文件鍵值

#PHP源文件中可以使用$smarty->getConfigVars("language")或$smarty->getConfigVariable("language")來獲取鍵值,$smarty->getConfigVars("language")獲取的還可能是數組
*/

/*
tpl文件中常用函數
tpl文件:
<!--將capture標簽括起的頁面顯示內容存在capture指定的testCapture中 -->
<!--當達到指定條件時可通過 {$smarty.capture.testCapture} 將內容輸出出來 -->

{capture name="testCapture"}
{include file="f1.tpl"}
{/capture}

{if true}
{$smarty.capture.testCapture}
{/if}

{if $name == "wang"}
Welcome wang.
{elseif $name == "zhang"}
Welcome zhang.
{else}

Welcome, whatever you are.
{/if}

{*操作符可以是 ==,>= 等也可以是 eq,ne等*}
{for $x=0; $x<count($testArr); $x++}
{$x}
{/for}
{*for循環,類似PHP代碼*}


{$x=0}
{while $x<count($testArr)}
{$x++}
{/while}
{*While循環,也類似PHP代碼。*}



<!--name和key屬性可不寫-->
{foreach name="testForeach" from=$testArr key=arId item=arVal}
{$arId}對應的值為:{$arVal}
<br>
{$smarty.foreach.testForeach.index}   <!--(循環內部使用)顯示當前循環的索引,如果數組為空,返回-1-->
{$smarty.foreach.testForeach.iteration} <!--(循環內部使用)顯示當前的循環次數-->
{$smarty.foreach.testForeach.first}   <!--(循環內部使用)如果為第一次循環,返回true-->
{$smarty.foreach.testForeach.last}   <!--(循環內部使用)如果為最后一次循環,返回true-->
{$smarty.foreach.testForeach.total}   <!-(循環內外部使用)顯示循環的總次數-->
<br>

{foreachelse}  <!--$testArr數組變量沒有值時(0個元素)執行。-->
$testArr is null
{/foreach}

{*也可以如下兩種類PHP格式*}
{foreach $testArr as $n}
{$n}
{/foreach}

{foreach $testArr as $key=>$n}
{$key}
{/foreach}

{$sectionArr = [0=>"a",4=>"b","c","d","e",6,7,8,9,10,11,12,13,14,15,16]}
{section name="testSection" loop=$sectionArr start=0 step=4 max=6 show=true}
{$smarty.section.testSection.index}- <!--當前循環到的數組的鍵值-->
{$sectionArr[testSection]}- <!--當前循環到的數組的元素值-->
{$smarty.section.testSection.iteration}-<!--當前section循環的次數,從1計起-->
<br/>

{sectionelse}
$sectionArr is null
{/section}

<!--section循環適用于純int型鍵值的數組-->
<!--給loop賦一個要循環的數組,start指定從數組指定鍵值開始循環,step指定數組下次循環的鍵值與本次循環鍵值之差,max指定循環最大次數,show指定是否循環false的話直接跳到執行sectionelse-->
<!--Section的內置變量與foreach 相同-->
*/

/*
tpl模板文件:
{literal}
<script type="text/javascript">
function a(){
    alert("this is script");
}
a();
</script>
{/literal}
{*
literal 標簽區域內的數據將被當作網頁html文本處理,此時模板將忽略且不分析其內部的所有字符信息。
該特性用于顯示有可能包含大括號等字符信息的 js、css 。當這些信息處于 {literal}{/literal} 標簽中時,模板引擎將不分析它們,而直接顯示。
*}
*/



//PHP文件:
//$smarty->setDebugging(true);//對后續調用的模板進行調試。
//$smarty->getDebugging();//得到當前是否進行調試,默認false
//或在需要調試的模版中寫入{debug}

/*
模板文件:
smarty3.0支持了模版繼承系統,例如
f1.tpl:
<html>
<body>
{block name="top"} f1.header<br />{/block}
{block name="middle"} f1.middle<br />{/block}
{block name="buttom"} f1.buttom<br />{/block}
</body>
</html>

f2.tpl:
{extends file="f1.tpl"}
{block name="top"} f2.header<br />{/block}
{block name="other"} it can`t be show <br />{/block}
{*
如果f2.tpl中沒有block標簽,或f2.tpl中沒有和f1.tpl中相同命名的block標簽,則f2.tpl完整引入顯示f1.tpl中所有內容包括block標簽的內容,而f2.tpl中所有內容將忽略
如果f2.tpl中有和f1.tpl中同名block標簽,則在f2.tpl顯示時f2.tpl中block標簽內容將覆蓋f1.tpl中同名block標簽的內容,在f2.tpl頁面顯示時,內容仍將按f1.tpl設置的格式位置顯示,f2.tpl其他所有文本包括未同名的block標簽及其內容都將被忽略,不顯示。
block標簽的內容只會覆蓋父模版中同名block標簽的內容,或在子模版中顯示,在本頁面中如果沒有調用父模版或父模版中沒有要覆蓋的同名block標簽,block標簽內容在本頁面中不顯示
這種繼承支持多文件,多重繼承,意味著可以無限的繼承下去
*}

{fetch file="http://www.xxx.com" assign="testAssign"}
{$testAssign}
{fetch file="http://www.xxx.com"}
{*fetch可以引用外部http,ftp的頁面,如指定assign的值則把引用的內容存在指定名的變量中,否則在哪有fetch在哪顯示*}
*/

//php頁面:
//調用模版也可以使用此方法,在輸出前做一些處理
//$output = $smarty->fetch("index.tpl");
//do something with $output here對將要輸出的內容進行處理
//echo $output;//然后將模板輸出

/*
模板中提交表單
<form name="input" action="file.php" method="post">
action屬性可以直接寫要提交到的php文件名,或者不寫空action=""則提交到調用該模板的php文件中
*/

//連接數據庫
mysql_connect("localhost","root","root");
mysql_select_db("test");
$smarty->assign("webDir",$_SERVER["DOCUMENT_ROOT"]);//$_SERVER["DOCUMENT_ROOT"]為當前項目文件夾的絕對路徑
//配置JQuery的src路徑最好寫絕對路徑或寫要運行文件能找到該JQuery的相對路徑因為要編譯成編譯文件,而編譯后的文件和原路徑環境不一樣
?>

標簽: PHP smarty 模板
相關文章:
主站蜘蛛池模板: 欧美日韩一区在线观看 | 美女主播精品视频一二三四 | 国产精品毛片一区二区三区 | 中文字幕在线观看 | 国产中文视频 | 天天看天天摸天天操 | 亚洲男人天堂av | 国产精品a久久 | 在线激情网站 | 日韩欧美国产网站 | 黄a视频| 欧美一级在线观看视频 | 欧美精品免费在线 | 亚洲国产午夜 | 成人在线观看中文字幕 | 国产精品亚洲一区 | a在线免费观看 | 在线国产视频 | 久久国产精品视频观看 | 国产亚洲精品久久久 | 国产精品第52页 | 在线免费av观看 | 久草热8精品视频在线观看 亚洲区在线 | 91精品国产自产精品男人的天堂 | 国产欧美一区二区精品婷 | 免费观看一级特黄欧美大片 | 欧美精品在线看 | 久久e久久| 婷婷在线观看视频 | 亚洲美女久久 | 国产日韩欧美在线 | 欧美久久久久久久久久久 | 中国黄色毛片 大片 | 在线观看av国产一区二区 | 久久久www成人免费精品 | 亚洲精品视频导航 | 亚洲第一天堂无码专区 | 成年人看的羞羞网站 | 日韩在线观看 | 欧美片网站免费 | www.99热 | 日日干夜夜骑 | 日韩精品一区二区三区在线播放 | 午夜成年人| 蜜桃视频一区二区 | av在线毛片| 中文字幕视频在线免费 | 男人的天堂久久 | 在线一区二区三区视频 | 久久国产99 | 国产精品jizz在线观看麻豆 | www中文字幕 | 精品国产乱码久久久久久闺蜜 | 欧美性一区二区三区 | 夜本色| 日韩精品第一页 | 永久免费av| 玖色视频 | 国产精品色在线网站 | 久久综合色视频 | 91精品国产99 | 在线观看不卡一区 | 欧美精产国品一二三区 | 九九亚洲精品 | 美女久久久久 | 欧美三级电影在线播放 | 天天看天天操 | 久久高清| 午夜精品视频在线观看 | 日韩在线观看三区 | 欧美精品1区2区3区 国产女无套免费网站 | 国产精品久久二区 | 国产二区在线播放 | 一区二区色| av一区二区在线观看 | 亚洲毛片在线观看 | 国产精品成人在线观看 | 久久久久久99 | 国产午夜精品一区二区 | 国产日韩欧美在线观看 | 懂色一区二区三区免费观看 | 成人激情视频在线播放 | 成人在线视频观看 | 午夜激情视频在线观看 | 国产一区二区久久久 | 国产一区二区在线免费观看 | 日日爱999| 国产成人在线一区 | 91免费在线看 | 久久99精品视频 | 日韩一区二区三区在线 | 成人h漫在线观看 | 密色视频 | 欧美日韩综合精品 | 亚洲另类小视频 | 亚洲无吗天堂 | a视频在线 | 91视频电影 | 午夜久久久久 | 国产精品日韩一区二区 | 亚洲第一黄色 | 久久久一二三 | 君岛美绪一区二区三区 | 一区二区三区四区在线播放 | 久久久91精品国产一区二区三区 | 日韩在线免费 | 国产午夜精品福利 | 免费观看一级特黄欧美大片 | 欧美日韩国产精品久久久久 | 91大神免费在线观看 | 国产福利精品一区 | 天天操天天碰 | 欧美三区 | 国产视频一二三区 | 精品一区二区三区免费视频 | 亚洲欧美综合 | 超级乱淫片国语对白免费视频 | 99久久久免费视频 | 久免费视频 | 亚洲一区二区在线电影 | 中文字幕在线观看免费视频 | 久久久久国产 | 本道综合精品 | 成人av福利| 国产福利在线观看 | av免费网站在线观看 | 国产情侣在线视频 | 国产在线乱| 黄久久久 | 亚洲成人久久久 | 久久99深爱久久99精品 | 另类天堂av | 欧美亚洲一区 | 成人小视频在线观看 | 成人av播放| www.99日本精品片com | 91性高湖久久久久久久久网站 | 99热免费精品 | 国产情侣免费视频 | 在线免费观看日韩视频 | 日韩国产一区二区三区 | 国产综合精品一区二区三区 | 涩久久 | 国产精品久久久久久中文字 | 精品一区在线 | 日韩和的一区二区 | 国产激情偷乱视频一区二区三区 | 欧美午夜视频 | 精品一区久久 | 亚洲视频一区二区 | 黄色a在线观看 | 精品一区在线 | 国产中文字幕一区二区三区 | 国产伦精品一区二区三区四区视频 | 午夜视频免费网站 | 久久91 | 欧美激情一区 | 日本一区二区三区免费观看 | 狠狠操中文字幕 | 亚洲国产精品综合久久久 | 久热免费在线 | www麻豆| 少妇久久久| 日韩一区二区在线观看 | 国产精品免费一区二区三区四区 | 一区二区三区国产好的精 | 激情网五月天 | 日韩精品免费观看 | 一级片在线观看 | 午夜精品一区二区三区免费视频 | 艹逼逼视频 | 四虎久久精品 | 成年无码av片在线 | 亚洲欧美日韩在线一区 | 中文字幕av一区 | 五月激情天 | 一区二区三区国产 | 视频在线一区二区 | 黄色成人在线 | 日韩av免费在线观看 | 亚洲区在线 | 成人亚洲一区二区 | 日韩精品一区在线 | 国产美女网站 | 青青久视频 | 99精品免费视频 | 成人网在线观看 | 欧美在线观看网站 | 欧美亚洲综合久久 | 国产精品免费观看 | 国产激情视频在线观看 | 日本久久成人 | 日韩一区二区在线观看 | 四色成人av永久网址 | 久久久免费视频看看 | 国产v日产∨综合v精品视频 | 北条麻妃国产九九九精品小说 | 精品一区视频 | 欧美精品三区 | 欧美日韩精品一区二区在线播放 | 亚洲欧美精品 | 天天射欧美| 综合色婷婷一区二区亚洲欧美国产 | 亚洲不卡高清视频 | 国产香蕉视频在线播放 | 久草国产视频 | 91精品福利| aaa天堂| 欧美喷潮久久久xxxxx | 理论片免费在线观看 | 色人久久| 亚洲精品日韩综合观看成人91 | 国产成人精品久久二区二区91 | 日韩专区一区二区三区 | 国产一区日韩欧美 | 精品自拍视频 | 欧美成人黄色小说 | 国产成人免费视频网站视频社区 | 黄网站免费在线观看 | 成人欧美一区二区三区在线观看 | 欧美一区二区免费 | 黑人xxx视频 | 日韩精品在线一区 | 亚洲第一中文字幕 | 国产极品视频在线观看 | 国产精品一区久久久久 | 婷婷色国产偷v国产偷v小说 | 91成人免费在线观看 | 亚洲精品乱码久久久久久金桔影视 | www精品美女久久久tv | 午夜精| 欧美成人免费视频 | 麻豆久久久久久 | 中文在线一区 | 成人欧美一区二区三区在线观看 | 日日操视频 | 精品久久久久久久久久久 | 亚洲热在线观看 | 一级免费av| 久久99精品久久久久久 | 中文字幕1区 | 亚洲天堂黄色 | 色av色av色av | 日韩欧美一区二区三区久久婷婷 | 婷婷免费在线观看 | 日韩高清成人 | 日本中文在线 | 99er视频 | 久久精品一区 | 黄色片网站在线看 | 国产一级特黄视频 | 欧美日韩在线免费观看 | 欧美激情视频久久 | 日韩视频在线观看不卡 | 亚洲天堂成人在线 | 国产成人一区二区三区影院在线 | 精品不卡| 在线观看免费毛片视频 | 精品久久久久久久久久久久久久 | 国产精品久久久久久吹潮 | 99亚洲国产精品 | 国产精品无码久久久久 | 毛片网站在线 | 亚洲一区二区国产 | 日本三级电影天堂 | 国产一区二区 | 日本午夜在线 | 在线欧美亚洲 | 一区二区免费看 | 九九热精品视频 | 九九热这里只有精品6 | 99亚洲精品 | 一区二区三区高清 | 成人激情视频在线播放 | 亚洲wu码 | 看亚洲a级一级毛片 | 亚洲中午字幕 | 美女张开腿视频网站免费 | 农村少妇kkkk7777 | 精品久久网| 国产伦一区 | 欧美日韩在线一区二区三区 | 99视频免费 | 国产精品久久久久久久久久久久久久 | 国产一级片一区二区三区 | 日韩精品一91爱爱 | 在线二区| 毛片在线免费 | 99久久精品免费 | a视频在线免费观看 | 欧美精品一区二区三区蜜桃视频 | 国产精品久久久久久久久小说 | 亚洲一区二区三区久久 | 亚洲第一se情网站 | 亚洲精品乱码久久观看网 | 99热热热 | 亚洲久草在线 | 可以免费看黄的网站 | 国产99久久精品 | 日日摸夜夜添夜夜添亚洲女人 | 日本色站 | 欧美电影一区 | av中文字幕第一页 | 欧美成人手机在线 | 五月天中文字幕 | 免费v片在线观看 | 国产福利精品一区 | 日本在线小视频 | 日韩欧美国产精品综合嫩v 国产高清av在线一区二区三区 | 久久久久久av | www.99热这里只有精品 | 亚洲国产精品久久久久久 | 亚洲免费观看视频 | 欧洲毛片| 欧美精品久久久久久久久老牛影院 | 一区二区色 | 国产精品a久久久久 | 亚洲精品中文字幕 | 国产美女视频一区 | 一级毛片在线看aaaa | 成人在线免费观看视频 | 天天操天天草 | 四虎中文字幕 | 黄色一级毛片 | 久久一二三四 | 女人色网 | 日韩精品一区在线视频 | 日韩午夜av | 午夜久久久久 | 亚洲一区二区在线看 | 色综合久久久久 | 91精品久久久久久久久入口 | 日韩视频一区二区三区四区 | 欧美狠狠操 | 一区二区三区在线不卡 | 91香蕉视频在线观看 | 欧美精品网站 | 精品国产乱码久久久久久久软件 | 免费观看黄色大片 | 国产wwwcom | 在线免费观看成年人视频 | 日韩一区精品 | 国产成人av在线 | 亚洲免费人成在线视频观看 | 亚洲国产一区二区三区在线观看 | 成人在线精品视频 | 国产精品久久久久久吹潮 | 99久久久成人国产精品 | 欧美亚洲日本 | 久久久一区二区三区 | 亚洲另类视频 | 久久一区二区视频 | 日本一区二区电影 | 成人黄色电影在线观看 | 激情五月综合 | 亚洲精品一区在线观看 | 97国产在线 | 久久久久久久成人 | 在线观看精品自拍私拍 | 国产日韩一级片 | 国产高清精品一区二区三区 | 亚洲欧洲日本国产 | 中文字幕欧美日韩一区 | 国产91精品一区二区绿帽 | 精品久久中文字幕 | 欧美日韩精品一区二区在线观看 | 91在线电影 | 91精品一区二区三区久久久久久 | 久久久久亚洲av毛片大全 | 免费成人一级片 | 天天澡天天狠天天天做 | 韩日免费视频 | 精品久久久久久 | 宅男lu666噜噜噜在线观看 | 日韩在线看片 | 超碰天堂| 黄在线看 | 曰曰操| 中文字幕乱码一区二区三区 | 日韩视频在线视频 | 一级毛片在线播放 | 欧美激情一区二区三区在线视频 | 亚洲免费在线播放 | 国产精品亚洲第一区在线暖暖韩国 | 欧美午夜一区二区三区免费大片 | 毛片国产| 国产免费亚洲 | 久久国产精品久久 | 亚洲午夜精品一区二区三区 | 午夜精品在线 | 亚洲国产成人在线视频 | 日本福利视频免费观看 | 久久国产精品久久久久久 | 日韩精品一区二区三区在线播放 | 亚洲国产成人久久 | 国产精品禁久久精品 | 久久久成人精品 | 精品国产髙清在线看国产毛片 | 国产精品国产精品国产专区不卡 | 久久精品免费 | 国产精品久久久久久久久 | 亚洲精品一区二三区不卡 | 中文字幕精品一区 | 中文字幕第一页在线 | 成人免费观看视频 | 欧美炮房 | 日韩免费网站 | 美女一区二区三区四区 | 欧美日韩精品一区二区在线播放 | 国产午夜精品一区二区三区嫩草 | 久久精品小视频 | 夜夜久久 | 91中文字幕一区 | 国内外成人在线视频 | 亚洲欧美激情精品一区二区 | 中文字幕欧美日韩一区 | 在线成人国产 | 精品国产一区二区三区久久影院 | 在线观看a视频 | 国产精品久久久久久久久久久久 | 玖玖国产精品视频 | 成人免费视频网址 | 在线看av网址 | 在线色站 | 亚洲免费影院 | 亚州中文字幕 | 午夜精品一区二区三区免费视频 | h免费在线观看 | 精品视频在线观看 | av在线一区二区三区 | 国产片在线观看 | 日本电影网址 | 国产区第一页 | 国产2区 | 亚洲欧美中文日韩v在线观看 | 最新国产中文字幕 | 99久久国产综合精品女不卡 | 91久久国产综合久久蜜月精品 | 欧美精品亚洲精品 | 99久久精品一区二区成人 | 中文字幕av一区二区三区 | 久久国产精品视频 | 一区二区三区影院 | 中文字幕黄色 | 欧美激情综合五月色丁香小说 | 青青久视频 | 一区二区三区视频在线 | 精品www| 国产精品视频一区二区三区 | 超碰香蕉| 一区二区精品在线 | 欧美日韩一 | 久久三区 | 国产精品久久久久久亚洲调教 | 亚洲综人网 | 欧美一级在线观看 | 久久中文视频 | 综合久久综合久久 | 成人久久久精品乱码一区二区三区 | 国产精品一区二区久久 | av解说在线精品 | 大桥未久亚洲精品久久久强制中出 | 国产精品第一 | 激情久久av一区av二区av三区 | 久久先锋 | 欧美乱淫| 黄色网址大全在线观看 | 精品一区二区三区免费毛片爱 | 亚洲 欧美 日韩在线 | 999精品嫩草久久久久久99 | 一区在线视频 | 亚洲第一视频 | 日韩精品在线视频 | 91成人精品| 99在线免费视频 | a级性生活 | 亚洲欧美国产精品专区久久 | 在线精品观看 | 欧美一级黄色片网站 | 欧美日韩免费一区二区三区 | 日韩a电影 | 在线观看国产精品一区 | 色欧美综合| 久久久久黄色 | 99精品视频在线 | 中文欧美日韩 | 三级在线视频 | 一级黄色短片 | 91精品国产日韩91久久久久久 | 曰批视频在线观看 | 日韩最新网址 | 国产丝袜在线 | 狠狠干影院 | 久久久久久亚洲 | 国产区精品 | 中文字幕一区二区三区乱码图片 | 久久爱综合 | 91精品国产一区二区 | 精品一区二区三区久久久 | 久久九 | 91精品国产一区二区三区蜜臀 | 精品一区二区三区久久 | 日韩一区二区三区在线观看 | 国产精品一区二区三区在线播放 | h视频在线观看免费 | 一区视频在线 | 中文字幕久久精品 | 不卡一区 | 91在线观看视频 | 成人一级黄色大片 | 欧美福利在线观看 | 日韩一区二区免费视频 | 国产成人毛片 | 亚洲国产精品99久久久久久久久 | 91精品久久久久久 | 一区二区日韩精品 | 天堂av中文| 青青草视频在线免费观看 | 欧洲美女7788成人免费视频 | 国产伦精品久久久一区二区三区 | 欧美高清视频一区 | 亚洲生活片 | 一区二区视频网 | 中文字幕在线观看不卡视频 | 天天躁日日躁aaaaxxxx | 蜜桃视频在线观看www社区 | 日韩三级电影免费观看 | 亚洲成人精品在线观看 | 国家aaa的一级看片 操操操夜夜操 | 色婷婷一区二区三区四区 | 精品久久久久久久久久久 | 国产九九精品视频 | 国产免费看 | 奇米av | 91精品福利| 日韩中文字幕在线免费观看 | 天堂综合网久久 | 久久久精品网 | 伊人热久久婷婷 | 午夜私人影院在线观看 | 国产色在线 | 国产亚洲一区二区三区在线观看 | wwwjizz日本| 一级毛片免费看 | 性人久久久 | 男人电影天堂 | 成人在线视频一区 | 国产精品高潮呻吟av久久4虎 | 久久这里只有精品免费 | 久久精品日产高清版的功能介绍 | 亚洲精品粉嫩美女一区 | 国产精品乱码人人做人人爱 | 日韩在线播放一区二区 | 国产99久久久久久免费看农村 | 中文字幕亚洲欧美日韩在线不卡 | 欧美一级淫片免费视频黄 | 欧美日韩三级 | 国产精品久久久久久久一区探花 | 欧美激情a∨在线视频播放 成人免费共享视频 | 少妇久久久 | 99精品久久精品一区二区爱城 | a在线免费观看 | 成人高清在线观看 | 精品国产一区二区三区久久影院 | 中文字幕三区 | 欧美日本一区 | 日韩视频在线观看中文字幕 | 久久国产一区二区 | 男人电影天堂 | 欧美精品一区二区三区在线 | 国产伦一区 | 一级在线看 | 黄色免费av | 国产精品久久久久久久9999 | 日韩精品久久久 | 午夜影院网站 | 亚洲成人免费电影 | 久久精品在线观看视频 | 一区二区色| 国产欧美精品区一区二区三区 | 亚洲一区二区中文字幕 | 成人午夜电影在线观看 | 成av在线| 日韩电影免费在线观看中文字幕 | 美女超碰 | 澳门av| 久久婷婷欧美 | 97国产一区二区精品久久呦 | 欧美在线影院 | 免费av一区 | 日韩视频中文 | 嫩草网址 | 亚洲网站在线播放 | 成人免费在线电影 | 久久综合中文字幕 | 亚洲一区中文字幕 | 日韩精品在线一区 | 一区二区中文字幕 | 日韩专区一区二区三区 | 久久精品视 | 九九视频这里只有精品 | 精品欧美一区二区三区久久久 | 国产精品久久久久久久久 | 亚洲国产一区二区三区在线观看 | 亚洲大片免费观看 | 操操网站 | 欧美精品成人在线视频 | 久久久久久亚洲 | 国产精品一区在线 | 午夜免费电影 | 欧美国产一区二区 | 亚洲国产一区二区在线 | 精品免费视频 | 亚洲精品一区二区三区麻豆 | 日韩成人|