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

用C/C++擴(kuò)展你的PHP 為你的php增加功能

 更新時間:2012年09月06日 22:52:08   作者:  
PHP取得成功的一個主要原因之一是她擁有大量的可用擴(kuò)展。web開發(fā)者無論有何種需求,這種需求最有可能在PHP發(fā)行包里找到。PHP發(fā)行包包括支持各種數(shù)據(jù)庫,圖形文件格式,壓縮,XML技術(shù)擴(kuò)展在內(nèi)的許多擴(kuò)展
英文版下載: PHP 5 Power Programming http://www.dhdzp.com/books/61020.html

PHP取得成功的一個主要原因之一是她擁有大量的可用擴(kuò)展。web開發(fā)者無論有何種需求,這種需求最有可能在PHP發(fā)行包里找到。PHP發(fā)行包包括支持各種數(shù)據(jù)庫,圖形文件格式,壓縮,XML技術(shù)擴(kuò)展在內(nèi)的許多擴(kuò)展。
擴(kuò)展API的引入使PHP3取得了巨大的進(jìn)展,擴(kuò)展API機(jī)制使PHP開發(fā)社區(qū)很容易的開發(fā)出幾十種擴(kuò)展?,F(xiàn)在,兩個版本過去了,API仍然和PHP3時的非常相似。擴(kuò)展主要的思想是:盡可能的從擴(kuò)展編寫者那里隱藏PHP的內(nèi)部機(jī)制和腳本引擎本身,僅僅需要開發(fā)者熟悉API。

有兩個理由需要自己編寫PHP擴(kuò)展。第一個理由是:PHP需要支持一項她還未支持的技術(shù)。這通常包括包裹一些現(xiàn)成的C函數(shù)庫,以便提供PHP接口。例如,如果一個叫FooBase的數(shù)據(jù)庫已推出市場,你需要建立一個PHP擴(kuò)展幫助你從PHP里調(diào)用FooBase的C函數(shù)庫。這個工作可能僅由一個人完成,然后被整個PHP社區(qū)共享(如果你愿意的話)。第二個不是很普遍的理由是:你需要從性能或功能的原因考慮來編寫一些商業(yè)邏輯。

如果以上的兩個理由都和你沒什么關(guān)系,同時你感覺自己沒有冒險精神,那么你可以跳過本章。

本章教你如何編寫相對簡單的PHP擴(kuò)展,使用一部分?jǐn)U展API函數(shù)。對于大多數(shù)打算開發(fā)自定義PHP擴(kuò)展開發(fā)者而言,它含概了足夠的資料。學(xué)習(xí)一門編程課程的最好方法之一就是動手做一些極其簡單的例子,這些例子正是本章的線索。一旦你明白了基礎(chǔ)的東西,你就可以在互聯(lián)網(wǎng)上通過閱讀文擋、原代碼或參加郵件列表新聞組討論來豐富自己。因此,本章集中在讓你如何開始的話題。在UNIX下一個叫ext_skel的腳本被用于建立擴(kuò)展的骨架,骨架信息從一個描述擴(kuò)展接口的定義文件中取得。因此你需要利用UNIX來建立一個骨架。Windows開發(fā)者可以使用Windows ext_skel_win32.php代替ext_skel。

然而,本章關(guān)于用你開發(fā)的擴(kuò)展編譯PHP的指導(dǎo)僅涉及UNIX編譯系統(tǒng)。本章中所有的對API的解釋與UNIX和Windows下開發(fā)的擴(kuò)展都有聯(lián)系。

當(dāng)你閱讀完這章,你能學(xué)會如何

•建立一個簡單的商業(yè)邏輯擴(kuò)展。
•建議個C函數(shù)庫的包裹擴(kuò)展,尤其是有些標(biāo)準(zhǔn)C文件操作函數(shù)比如fopen()
快速開始
本節(jié)沒有介紹關(guān)于腳本引擎基本構(gòu)造的一些知識,而是直接進(jìn)入擴(kuò)展的編碼講解中,因此不要擔(dān)心你無法立刻獲得對擴(kuò)展整體把握的感覺。假設(shè)你正在開發(fā)一個網(wǎng)站,需要一個把字符串重復(fù)n次的函數(shù)。下面是用PHP寫的例子:

復(fù)制代碼 代碼如下:

function self_concat($string, $n){
$result = "";
for($i = 0; $i < $n; $i++){
$result .= $string;
}
return $result;
}
self_concat("One", 3) returns "OneOneOne".
self_concat("One", 1) returns "One".


假設(shè)由于一些奇怪的原因,你需要時常調(diào)用這個函數(shù),而且還要傳給函數(shù)很長的字符串和大值n。這意味著在腳本里有相當(dāng)巨大的字符串連接量和內(nèi)存重新分配過程,以至顯著地降低腳本執(zhí)行速度。如果有一個函數(shù)能夠更快地分配大量且足夠的內(nèi)存來存放結(jié)果字符串,然后把$string重復(fù)n次,就不需要在每次循環(huán)迭代中分配內(nèi)存。

為擴(kuò)展建立函數(shù)的第一步是寫一個函數(shù)定義文件,該函數(shù)定義文件定義了擴(kuò)展對外提供的函數(shù)原形。該例中,定義函數(shù)只有一行函數(shù)原形self_concat() :

復(fù)制代碼 代碼如下:

string self_concat(string str, int n)


函數(shù)定義文件的一般格式是一個函數(shù)一行。你可以定義可選參數(shù)和使用大量的PHP類型,包括: bool, float, int, array等。

保存為myfunctions.def文件至PHP原代碼目錄樹下。

該是通過擴(kuò)展骨架(skeleton)構(gòu)造器運(yùn)行函數(shù)定義文件的時機(jī)了。該構(gòu)造器腳本叫ext_skel,放在PHP原代碼目錄樹的ext/目錄下(PHP原碼主目錄下的README.EXT_SKEL提供了更多的信息)。假設(shè)你把函數(shù)定義保存在一個叫做myfunctions.def的文件里,而且你希望把擴(kuò)展取名為myfunctions,運(yùn)行下面的命令來建立擴(kuò)展骨架

復(fù)制代碼 代碼如下:

./ext_skel --extname=myfunctions --proto=myfunctions.de


這個命令在ext/目錄下建立了一個myfunctions/目錄。你要做的第一件事情也許就是編譯該骨架,以便編寫和測試實際的C代碼。編譯擴(kuò)展有兩種方法:

•作為一個可裝載模塊或者DSO(動態(tài)共享對象)
•靜態(tài)編譯到PHP

PHP擴(kuò)展開發(fā)導(dǎo)圖

因為第二種方法比較容易上手,所以本章采用靜態(tài)編譯。如果你對編譯可裝載擴(kuò)展模塊感興趣,可以閱讀PHP原代碼根目錄下的README.SELF-CONTAINED_EXTENSIONS文件。為了使擴(kuò)展能夠被編譯,需要修改擴(kuò)展目錄ext/myfunctions/下的config.m4文件。擴(kuò)展沒有包裹任何外部的C庫,你需要添加支持–enable-myfunctions配置開關(guān)到PHP編譯系統(tǒng)里(–with-extension 開關(guān)用于那些需要用戶指定相關(guān)C庫路徑的擴(kuò)展)??梢匀サ糇詣由傻南旅鎯尚械淖⑨寔黹_啟這個配置。

復(fù)制代碼 代碼如下:

./ext_skel --extname=myfunctions --proto=myfunctions.def
PHP_ARG_ENABLE(myfunctions, whether to enable myfunctions support,
[ --enable-myfunctions Include myfunctions support]


現(xiàn)在剩下的事情就是在PHP原代碼樹根目錄下運(yùn)行./buildconf,該命令會生成一個新的配置腳本。通過查看./configure –help輸出信息,可以檢查新的配置選項是否被包含到配置文件中?,F(xiàn)在,打開你喜好的配置選項開關(guān)和–enable-myfunctions重新配置一下PHP。最后的但不是最次要的是,用make來重新編譯PHP。

ext_skel應(yīng)該把兩個PHP函數(shù)添加到你的擴(kuò)展骨架了:打算實現(xiàn)的self_concat()函數(shù)和用于檢測myfunctions 是否編譯到PHP的confirm_myfunctions_compiled()函數(shù)。完成PHP的擴(kuò)展開發(fā)后,可以把后者去掉。

復(fù)制代碼 代碼如下:

<?php
print confirm_myfunctions_compiled("myextension");
?>

運(yùn)行這個腳本會出現(xiàn)類似下面的輸出:
復(fù)制代碼 代碼如下:

"Congratulations! You have successfully modified ext/myfunctions
config.m4. Module myfunctions is now compiled into PHP.

另外,ext_skel腳本生成一個叫myfunctions.php的腳本,你也可以利用它來驗證擴(kuò)展是否被成功地編譯到PHP。它會列出該擴(kuò)展所支持的所有函數(shù)。
現(xiàn)在你學(xué)會如何編譯擴(kuò)展了,該是真正地研究self_concat()函數(shù)的時候了。
下面就是ext_skel腳本生成的骨架結(jié)構(gòu):
復(fù)制代碼 代碼如下:

/* {{{ proto string self_concat(string str, int n)
*/
PHP_FUNCTION(self_concat)
{
char *str = NULL;
int argc = ZEND_NUM_ARGS();
int str_len;
long n;
if (zend_parse_parameters(argc TSRMLS_CC, "sl", &str, &str_len, &n) == FAILURE)
return;
php_error(E_WARNING, "self_concat: not yet implemented");
}
/* }}} */


自動生成的PHP函數(shù)周圍包含了一些注釋,這些注釋用于自動生成代碼文檔和vi、Emacs等編輯器的代碼折疊。函數(shù)自身的定義使用了宏P(guān)HP_FUNCTION(),該宏可以生成一個適合于Zend引擎的函數(shù)原型。邏輯本身分成語義各部分,取得調(diào)用函數(shù)的參數(shù)和邏輯本身。

為了獲得函數(shù)傳遞的參數(shù),可以使用zend_parse_parameters()API函數(shù)。下面是該函數(shù)的原型:
復(fù)制代碼 代碼如下:

zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, …);

第一個參數(shù)是傳遞給函數(shù)的參數(shù)個數(shù)。通常的做法是傳給它ZEND_NUM_ARGS()。這是一個表示傳遞給函數(shù)參數(shù)總個數(shù)的宏。第二個參數(shù)是為了線程安全,總是傳遞TSRMLS_CC宏,后面會講到。第三個參數(shù)是一個字符串,指定了函數(shù)期望的參數(shù)類型,后面緊跟著需要隨參數(shù)值更新的變量列表。因為PHP采用松散的變量定義和動態(tài)的類型判斷,這樣做就使得把不同類型的參數(shù)轉(zhuǎn)化為期望的類型成為可能。例如,如果用戶傳遞一個整數(shù)變量,可函數(shù)需要一個浮點(diǎn)數(shù),那么zend_parse_parameters()就會自動地把整數(shù)轉(zhuǎn)換為相應(yīng)的浮點(diǎn)數(shù)。如果實際值無法轉(zhuǎn)換成期望類型(比如整形到數(shù)組形),會觸發(fā)一個警告。

下表列出了可能指定的類型。我們從完整性考慮也列出了一些沒有討論到的類型。

類型指定符 對應(yīng)的C類型 描述
l long 符號整數(shù)
d double 浮點(diǎn)數(shù)
s char *, int 二進(jìn)制字符串,長度
b zend_bool 邏輯型(1或0)
r zval * 資源(文件指針,數(shù)據(jù)庫連接等)
a zval * 聯(lián)合數(shù)組
o zval * 任何類型的對象
O zval * 指定類型的對象。需要提供目標(biāo)對象的類類型
z zval * 無任何操作的zval

為了容易地理解最后幾個選項的含義,你需要知道zval是Zend引擎的值容器[1]。無論這個變量是布爾型,字符串型或者其他任何類型,其信息總會包含在一個zval聯(lián)合體中。本章中我們不直接存取zval,而是通過一些附加的宏來操作。下面的是或多或少在C中的zval, 以便我們能更好地理解接下來的代碼。

復(fù)制代碼 代碼如下:

typedef union _zval{
long lval;
double dval;
struct {
char *val;
int len;
}str;
HashTable *ht;
zend_object_value obj;
}zval;


在我們的例子中,我們用基本類型調(diào)用zend_parse_parameters(),以本地C類型的方式取得函數(shù)參數(shù)的值,而不是用zval容器。

為了讓zend_parse_parameters()能夠改變傳遞給它的參數(shù)的值,并返回這個改變值,需要傳遞一個引用。仔細(xì)查看一下self_concat():

復(fù)制代碼 代碼如下:

if (zend_parse_parameters(argc TSRMLS_CC, "sl", &str, &str_len, &n) == FAILURE)return;


注意到自動生成的代碼會檢測函數(shù)的返回值FAILUER(成功即SUCCESS)來判斷是否成功。如果沒有成功則立即返回,并且由zend_parse_parameters()負(fù)責(zé)觸發(fā)警告信息。因為函數(shù)打算接收一個字符串l和一個整數(shù)n,所以指定 ”sl” 作為其類型指示符。s需要兩個參數(shù),所以我們傳遞參考char * 和 int (str 和 str_len)給zend_parse_parameters()函數(shù)。無論什么時候,記得總是在代碼中使用字符串長度str_len來確保函數(shù)工作在二進(jìn)制安全的環(huán)境中。不要使用strlen()和strcpy(),除非你不介意函數(shù)在二進(jìn)制字符串下不能工作。二進(jìn)制字符串是包含有nulls的字符串。二進(jìn)制格式包括圖象文件,壓縮文件,可執(zhí)行文件和更多的其他文件?!眑” 只需要一個參數(shù),所以我們傳遞給它n的引用。盡管為了清晰起見,骨架腳本生成的C變量名與在函數(shù)原型定義文件中的參數(shù)名一樣;這樣做不是必須的,盡管在實踐中鼓勵這樣做。

回到轉(zhuǎn)換規(guī)則中來。下面三個對self_concat()函數(shù)的調(diào)用使str, str_len和n得到同樣的值:

復(fù)制代碼 代碼如下:

self_concat("321", 5);
self_concat(321, "5");
self_concat("321", "5");
str points to the string "321", str_len equals 3, and n equals 5.
str 指向字符串"321",str_len等于3,n等于5


在我們編寫代碼來實現(xiàn)連接字符串返回給PHP的函數(shù)前,還得談?wù)剝蓚€重要的話題:內(nèi)存管理、從PHP內(nèi)部返回函數(shù)值所使用的API。

內(nèi)存管理

用于從堆中分配內(nèi)存的PHP API幾乎和標(biāo)準(zhǔn)C API一樣。在編寫擴(kuò)展的時候,使用下面與C對應(yīng)(因此不必再解釋)的API函數(shù):
復(fù)制代碼 代碼如下:

emalloc(size_t size);
efree(void *ptr);
ecalloc(size_t nmemb, size_t size);
erealloc(void *ptr, size_t size);
estrdup(const char *s);
estrndup(const char *s, unsigned int length);

在這一點(diǎn)上,任何一位有經(jīng)驗的C程序員應(yīng)該象這樣思考一下:“什么?標(biāo)準(zhǔn)C沒有strndup()?”是的,這是正確的,因為GNU擴(kuò)展通常在Linux下可用。estrndup()只是PHP下的一個特殊函數(shù)。它的行為與estrdup()相似,但是可以指定字符串重復(fù)的次數(shù)(不需要結(jié)束空字符),同時是二進(jìn)制安全的。這是推薦使用estrndup()而不是estrdup()的原因。

在幾乎所有的情況下,你應(yīng)該使用這些內(nèi)存分配函數(shù)。有一些情況,即擴(kuò)展需要分配在請求中永久存在的內(nèi)存,從而不得不使用malloc(),但是除非你知道你在做什么,你應(yīng)該始終使用以上的函數(shù)。如果沒有使用這些內(nèi)存函數(shù),而相反使用標(biāo)準(zhǔn)C函數(shù)分配的內(nèi)存返回給腳本引擎,那么PHP會崩潰。

這些函數(shù)的優(yōu)點(diǎn)是:任何分配的內(nèi)存在偶然情況下如果沒有被釋放,則會在頁面請求的最后被釋放。因此,真正的內(nèi)存泄漏不會產(chǎn)生。然而,不要依賴這一機(jī)制,從調(diào)試和性能兩個原因來考慮,應(yīng)當(dāng)確保釋放應(yīng)該釋放的內(nèi)存。剩下的優(yōu)點(diǎn)是在多線程環(huán)境下性能的提高,調(diào)試模式下檢測內(nèi)存錯誤等。

還有一個重要的原因,你不需要檢查這些內(nèi)存分配函數(shù)的返回值是否為null。當(dāng)內(nèi)存分配失敗,它們會發(fā)出E_ERROR錯誤,從而決不會返回到擴(kuò)展。

從PHP函數(shù)中返回值

擴(kuò)展API包含豐富的用于從函數(shù)中返回值的宏。這些宏有兩種主要風(fēng)格:第一種是RETVAL_type()形式,它設(shè)置了返回值但C代碼繼續(xù)執(zhí)行。這通常使用在把控制交給腳本引擎前還希望做的一些清理工作的時候使用,然后再使用C的返回聲明 ”return” 返回到PHP;后一個宏更加普遍,其形式是RETURN_type(),他設(shè)置了返回類型,同時返回控制到PHP。下表解釋了大多數(shù)存在的宏。

設(shè)置返回值并且結(jié)束函數(shù) 設(shè)置返回值 宏返回類型和參數(shù)
RETURN_LONG(l) RETVAL_LONG(l) 整數(shù)
RETURN_BOOL(b) RETVAL_BOOL(b) 布爾數(shù)(1或0)
RETURN_NULL() RETVAL_NULL() NULL
RETURN_DOUBLE(d) RETVAL_DOUBLE(d) 浮點(diǎn)數(shù)
RETURN_STRING(s, dup) RETVAL_STRING(s, dup) 字符串。如果dup為1,引擎會調(diào)用estrdup()重復(fù)s,使用拷貝。如果dup為0,就使用s
RETURN_STRINGL(s, l, dup) RETVAL_STRINGL(s, l, dup) 長度為l的字符串值。與上一個宏一樣,但因為s的長度被指定,所以速度更快。
RETURN_TRUE RETVAL_TRUE 返回布爾值true。注意到這個宏沒有括號。
RETURN_FALSE RETVAL_FALSE 返回布爾值false。注意到這個宏沒有括號。
RETURN_RESOURCE(r) RETVAL_RESOURCE(r) 資源句柄。

完成self_concat()

現(xiàn)在你已經(jīng)學(xué)會了如何分配內(nèi)存和從PHP擴(kuò)展函數(shù)里返回函數(shù)值,那么我們就能夠完成self_concat()的編碼:
復(fù)制代碼 代碼如下:

/* {{{ proto string self_concat(string str, int n)
*/
PHP_FUNCTION(self_concat)
}
char *str = NULL;
int argc = ZEND_NUM_ARGS();
int str_len;
long n;
char *result; /* Points to resulting string */
char *ptr; /* Points at the next location we want to copy to */
int result_length; /* Length of resulting string */
if (zend_parse_parameters(argc TSRMLS_CC, "sl", &str, &str_len, &n) == FAILURE)
return;
/* Calculate length of result */
result_length = (str_len * n);
/* Allocate memory for result */
result = (char *) emalloc(result_length + 1);
/* Point at the beginning of the result */
ptr = result;
while (n--) {
/* Copy str to the result */
memcpy(ptr, str, str_len);
/* Increment ptr to point at the next position we want to write to */
ptr += str_len;
}
/* Null terminate the result. Always null-terminate your strings
even if they are binary strings */
*ptr = '\0';
/* Return result to the scripting engine without duplicating it*/
RETURN_STRINGL(result, result_length, 0);
}
/* }}} */

現(xiàn)在要做的就是重新編譯一下PHP,這樣就完成了第一個PHP函數(shù)。

讓我門檢查函數(shù)是否真的工作。在最新編譯過的PHP樹下執(zhí)行[2]下面的腳本:
復(fù)制代碼 代碼如下:

<?php
for ($i = 1; $i <= 3; $i++){
print self_concat("ThisIsUseless", $i);
print "\n";
}
?>

你應(yīng)該得到下面的結(jié)果:
復(fù)制代碼 代碼如下:

ThisIsUseless
ThisIsUselessThisIsUseless
ThisIsUselessThisIsUselessThisIsUseles

實例小結(jié)
你已經(jīng)學(xué)會如何編寫一個簡單的PHP函數(shù)。回到本章的開頭,我們提到用C編寫PHP功能函數(shù)的兩個主要的動機(jī)。第一個動機(jī)是用C實現(xiàn)一些算法來提高性能和擴(kuò)展功能。前一個例子應(yīng)該能夠指導(dǎo)你快速上手這種類型擴(kuò)展的開發(fā)。第二個動機(jī)是包裹三方函數(shù)庫。我們將在下一步討論。

包裹第三方的擴(kuò)展
本節(jié)中你將學(xué)到如何編寫更有用和更完善的擴(kuò)展。該節(jié)的擴(kuò)展包裹了一個C庫,展示了如何編寫一個含有多個互相依賴的PHP函數(shù)擴(kuò)展。

動機(jī)
也許最常見的PHP擴(kuò)展是那些包裹第三方C庫的擴(kuò)展。這些擴(kuò)展包括MySQL或Oracle的數(shù)據(jù)庫服務(wù)庫,libxml2的 XML技術(shù)庫,ImageMagick 或GD的圖形操縱庫。

在本節(jié)中,我們編寫一個擴(kuò)展,同樣使用腳本來生成骨架擴(kuò)展,因為這能節(jié)省許多工作量。這個擴(kuò)展包裹了標(biāo)準(zhǔn)C函數(shù)fopen(), fclose(), fread(), fwrite()和 feof().

擴(kuò)展使用一個被叫做資源的抽象數(shù)據(jù)類型,用于代表已打開的文件FILE*。你會注意到大多數(shù)處理比如數(shù)據(jù)庫連接、文件句柄等的PHP擴(kuò)展使用了資源類型,這是因為引擎自己無法直接“理解”它們。我們計劃在PHP擴(kuò)展中實現(xiàn)的C API列表如下:

復(fù)制代碼 代碼如下:

FILE *fopen(const char *path, const char *mode);
int fclose(FILE *stream);
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
int feof(FILE *stream);


我們實現(xiàn)這些函數(shù),使它們在命名習(xí)慣和簡單性上符合PHP腳本。如果你曾經(jīng)向PHP社區(qū)貢獻(xiàn)過代碼,你被期望遵循一些公共習(xí)俗,而不是跟隨C庫里的API。并不是所有的習(xí)俗都寫在PHP代碼樹的CODING_STANDARDS文件里。這即是說,此功能已經(jīng)從PHP發(fā)展的很早階段即被包含在PHP中,并且與C庫API類似。PHP安裝已經(jīng)支持fopen(), fclose()和更多的PHP函數(shù)。
以下是PHP風(fēng)格的API:

復(fù)制代碼 代碼如下:

resource file_open(string filename, string mode)
file_open() //接收兩個字符串(文件名和模式),返回一個文件的資源句柄。
bool file_close(resource filehandle)
file_close() //接收一個資源句柄,返回真/假指示是否操作成功。
string file_read(resource filehandle, int size)
file_read() //接收一個資源句柄和讀入的總字節(jié)數(shù),返回讀入的字符串。
bool file_write(resource filehandle, string buffer)
file_write() //接收一個資源句柄和被寫入的字符串,返回真/假指示是否操作成功。
bool file_eof(resource filehandle)
file_eof() //接收一個資源句柄,返回真/假指示是否到達(dá)文件的尾部。


因此,我們的函數(shù)定義文件——保存為ext/目錄下的myfile.def——內(nèi)容如下:

復(fù)制代碼 代碼如下:

resource file_open(string filename, string mode)

bool file_close(resource filehandle)

string file_read(resource filehandle, int size)

bool file_write(resource filehandle, string buffer)

bool file_eof(resource filehandle)


下一步,利用ext_skel腳本在ext./ 原代碼目錄執(zhí)行下面的命令:
復(fù)制代碼 代碼如下:

./ext_skel --extname=myfile --proto=myfile.de

然后,按照前一個例子的關(guān)于編譯新建立腳本的步驟操作。你會得到一些包含F(xiàn)ETCH_RESOURCE()宏行的編譯錯誤,這樣骨架腳本就無法順利完成編譯。為了讓骨架擴(kuò)展順利通過編譯,把那些出錯行[3]注釋掉即可。

資源
資源是一個能容納任何信息的抽象數(shù)據(jù)結(jié)構(gòu)。正如前面提到的,這個信息通常包括例如文件句柄、數(shù)據(jù)庫連接結(jié)構(gòu)和其他一些復(fù)雜類型的數(shù)據(jù)。

使用資源的主要原因是因為:資源被一個集中的隊列所管理,該隊列可以在PHP開發(fā)人員沒有在腳本里面顯式地釋放時可以自動地被釋放。

舉個例子,考慮到編寫一個腳本,在腳本里調(diào)用mysql_connect()打開一個MySQL連接,可是當(dāng)該數(shù)據(jù)庫連接資源不再使用時卻沒有調(diào)用mysql_close()。在PHP里,資源機(jī)制能夠檢測什么時候這個資源應(yīng)當(dāng)被釋放,然后在當(dāng)前請求的結(jié)尾或通常情況下更早地釋放資源。這就為減少內(nèi)存泄漏賦予了一個“防彈”機(jī)制。如果沒有這樣一個機(jī)制,經(jīng)過幾次web請求后,web服務(wù)器也許會潛在地泄漏許多內(nèi)存資源,從而導(dǎo)致服務(wù)器當(dāng)機(jī)或出錯。

注冊資源類型
如何使用資源?Zend引擎讓使用資源變地非常容易。你要做的第一件事就是把資源注冊到引擎中去。使用這個API函數(shù):

int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char *type_name, int module_number)

這個函數(shù)返回一個資源類型id,該id應(yīng)當(dāng)被作為全局變量保存在擴(kuò)展里,以便在必要的時候傳遞給其他資源API。ld:該資源釋放時調(diào)用的函數(shù)。pld用于在不同請求中始終存在的永久資源,本章不會涉及。type_name是一個具有描述性類型名稱的字符串,module_number為引擎內(nèi)部使用,當(dāng)我們調(diào)用這個函數(shù)時,我們只需要傳遞一個已經(jīng)定義好的module_number變量。

回到我們的例子中來:我們會添加下面的代碼到myfile.c原文件中。該文件包括了資源釋放函數(shù)的定義,此資源函數(shù)被傳遞給zend_register_list_destructors_ex()注冊函數(shù)(資源釋放函數(shù)應(yīng)該提早添加到文件中,以便在調(diào)用zend_register_list_destructors_ex()時該函數(shù)已被定義):

復(fù)制代碼 代碼如下:

static void myfile_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC){
FILE *fp = (FILE *) rsrc->ptr;
fclose(fp);
}

把注冊行添加到PHP_MINIT_FUNCTION()后,看起來應(yīng)該如下面的代碼:

復(fù)制代碼 代碼如下:

PHP_MINIT_FUNCTION(myfile){
/* If you have INI entries, uncomment these lines
ZEND_INIT_MODULE_GLOBALS(myfile, php_myfile_init_globals,NULL);

REGISTER_INI_ENTRIES();
*/

le_myfile = zend_register_list_destructors_ex(myfile_dtor,NULL,"standard-c-file", module_number);

return SUCCESS;
}

l 注意到le_myfile是一個已經(jīng)被ext_skel腳本定義好的全局變量。

PHP_MINIT_FUNCTION()是一個先于模塊(擴(kuò)展)的啟動函數(shù),是暴露給擴(kuò)展的一部分API。下表提供可用函數(shù)簡要的說明。

函數(shù)聲明宏 語義
PHP_MINIT_FUNCTION() 當(dāng)PHP被裝載時,模塊啟動函數(shù)即被引擎調(diào)用。這使得引擎做一些例如資源類型,注冊INI變量等的一次初始化。
PHP_MSHUTDOWN_FUNCTION() 當(dāng)PHP完全關(guān)閉時,模塊關(guān)閉函數(shù)即被引擎調(diào)用。通常用于注銷INI條目
PHP_RINIT_FUNCTION() 在每次PHP請求開始,請求前啟動函數(shù)被調(diào)用。通常用于管理請求前邏輯。
PHP_RSHUTDOWN_FUNCTION() 在每次PHP請求結(jié)束后,請求前關(guān)閉函數(shù)被調(diào)用。經(jīng)常應(yīng)用在清理請求前啟動函數(shù)的邏輯。
PHP_MINFO_FUNCTION() 調(diào)用phpinfo()時模塊信息函數(shù)被呼叫,從而打印出模塊信息。

新建和注冊新資源 我們準(zhǔn)備實現(xiàn)file_open()函數(shù)。當(dāng)我們打開文件得到一個FILE *,我們需要利用資源機(jī)制注冊它。下面的主要宏實現(xiàn)注冊功能:

復(fù)制代碼 代碼如下:

ZEND_REGISTER_RESOURCE(rsrc_result, rsrc_pointer, rsrc_type);

參考表格對宏參數(shù)的解釋

ZEND_REGISTER_RESOURCE 宏參數(shù)

宏參數(shù) 參數(shù)類型
rsrc_result zval *, which should be set with the registered resource information. zval * 設(shè)置為已注冊資源信息
rsrc_pointer Pointer to our resource data. 資源數(shù)據(jù)指針
rsrc_type The resource id obtained when registering the resource type. 注冊資源類型時獲得的資源id

文件函數(shù)
現(xiàn)在你知道了如何使用ZEND_REGISTER_RESOURCE()宏,并且準(zhǔn)備好了開始編寫file_open()函數(shù)。還有一個主題我們需要講述。

當(dāng)PHP運(yùn)行在多線程服務(wù)器上,不能使用標(biāo)準(zhǔn)的C文件存取函數(shù)。這是因為在一個線程里正在運(yùn)行的PHP腳本會改變當(dāng)前工作目錄,因此另外一個線程里的腳本使用相對路徑則無法打開目標(biāo)文件。為了阻止這種錯誤發(fā)生,PHP框架提供了稱作VCWD (virtual current working directory 虛擬當(dāng)前工作目錄)宏,用來代替任何依賴當(dāng)前工作目錄的存取函數(shù)。這些宏與被替代的函數(shù)具備同樣的功能,同時是被透明地處理。在某些沒有標(biāo)準(zhǔn)C函數(shù)庫平臺的情況下,VCWD框架則不會得到支持。例如,Win32下不存在chown(),就不會有相應(yīng)的VCWD_CHOWN()宏被定義。

VCWD列表
標(biāo)準(zhǔn)C庫 VCWD宏
getcwd() VCWD_GETCWD()
fopen() VCWD_FOPEN
open() VCWD_OPEN() //用于兩個參數(shù)的版本
open() VCWD_OPEN_MODE() //用于三個參數(shù)的open()版本
creat() VCWD_CREAT()
chdir() VCWD_CHDIR()
getwd() VCWD_GETWD()
realpath() VCWD_REALPATH()
rename() VCWD_RENAME()
stat() VCWD_STAT()
lstat() VCWD_LSTAT()
unlink() VCWD_UNLINK()
mkdir() VCWD_MKDIR()
rmdir() VCWD_RMDIR()
opendir() VCWD_OPENDIR()
popen() VCWD_POPEN()
access() VCWD_ACCESS()
utime() VCWD_UTIME()
chmod() VCWD_CHMOD()
chown() VCWD_CHOWN()

編寫利用資源的第一個PHP函數(shù)
實現(xiàn)file_open()應(yīng)該非常簡單,看起來像下面的樣子:

復(fù)制代碼 代碼如下:

PHP_FUNCTION(file_open){
char *filename = NULL;
char *mode = NULL;
int argc = ZEND_NUM_ARGS();
int filename_len;
int mode_len;
FILE *fp;
if (zend_parse_parameters(argc TSRMLS_CC, "ss", &filename,&filename_len, &mode, &mode_len) == FAILURE) {
return;
}
fp = VCWD_FOPEN(filename, mode);
if (fp == NULL) {
RETURN_FALSE;
}
ZEND_REGISTER_RESOURCE(return_value, fp, le_myfile);
}

你可能會注意到資源注冊宏的第一個參數(shù)return_value,可此地找不到它的定義。這個變量自動的被擴(kuò)展框架定義為zval * 類型的函數(shù)返回值。先前討論的、能夠影響返回值的RETURN_LONG() 和RETVAL_BOOL()宏確實改變了return_value的值。因此很容易猜到程序注冊了我們?nèi)〉玫奈募羔榝p,同時設(shè)置return_value為該注冊資源。

訪問資源 需要使用下面的宏訪問資源(參看表對宏參數(shù)的解釋)
復(fù)制代碼 代碼如下:

ZEND_FETCH_RESOURCE(rsrc, rsrc_type, passed_id, default_id, resource_type_name, resource_type);

ZEND_FETCH_RESOURCE 宏參數(shù)
參數(shù) 含義
rsrc 資源值保存到的變量名。它應(yīng)該和資源有相同類型。
rsrc_type rsrc的類型,用于在內(nèi)部把資源轉(zhuǎn)換成正確的類型
passed_id 尋找的資源值(例如zval **)
default_id 如果該值不為-1,就使用這個id。用于實現(xiàn)資源的默認(rèn)值。
resource_type_name 資源的一個簡短名稱,用于錯誤信息。
resource_type 注冊資源的資源類型id

使用這個宏,我們現(xiàn)在能夠?qū)崿F(xiàn)file_eof():
復(fù)制代碼 代碼如下:

PHP_FUNCTION(file_eof){
int argc = ZEND_NUM_ARGS();
zval *filehandle = NULL;
FILE *fp;
if (zend_parse_parameters(argc TSRMLS_CC, "r", &filehandle) ==FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(fp, FILE *, &filehandle, -1, "standard-c-file",le_myfile);
if (fp == NULL){
RETURN_FALSE;
}
if (feof(fp) <= 0) {
/* Return eof also if there was an error */
RETURN_TRUE;
}
RETURN_FALSE;
}

刪除一個資源通常使用下面這個宏刪除一個資源:
復(fù)制代碼 代碼如下:

int zend_list_delete(int id)

傳遞給宏一個資源id,返回SUCCESS或者FAILURE。如果資源存在,優(yōu)先從Zend資源列隊中刪除,該過程中會調(diào)用該資源類型的已注冊資源清理函數(shù)。因此,在我們的例子中,不必取得文件指針,調(diào)用fclose()關(guān)閉文件,然后再刪除資源。直接把資源刪除掉即可。
使用這個宏,我們能夠?qū)崿F(xiàn)file_close():
復(fù)制代碼 代碼如下:

PHP_FUNCTION(file_close){
int argc = ZEND_NUM_ARGS();
zval *filehandle = NULL;
if (zend_parse_parameters(argc TSRMLS_CC, "r", &filehandle) == FAILURE) {
return;
}
if (zend_list_delete(Z_RESVAL_P(filehandle)) == FAILURE) {
RETURN_FALSE;
}
RETURN_TRUE;
}

你肯定會問自己Z_RESVAL_P()是做什么的。當(dāng)我們使用zend_parse_parameters()從參數(shù)列表中取得資源的時候,得到的是zval的形式。為了獲得資源id,我們使用Z_RESVAL_P()宏得到id,然后把id傳遞給zend_list_delete()。
有一系列宏用于訪問存儲于zval值(參考表的宏列表)。盡管在大多數(shù)情況下zend_parse_parameters()返回與c類型相應(yīng)的值,我們?nèi)韵M苯犹幚韟val,包括資源這一情況。

Zval訪問宏
訪問對象 C 類型
Z_LVAL, Z_LVAL_P, Z_LVAL_PP 整型值 long
Z_BVAL, Z_BVAL_P, Z_BVAL_PP 布爾值 zend_bool
Z_DVAL, Z_DVAL_P, Z_DVAL_PP 浮點(diǎn)值 double
Z_STRVAL, Z_STRVAL_P, Z_STRVAL_PP 字符串值 char *
Z_STRLEN, Z_STRLEN_P, Z_STRLEN_PP 字符串長度值 int
Z_RESVAL, Z_RESVAL_P,Z_RESVAL_PP 資源值 long
Z_ARRVAL, Z_ARRVAL_P, Z_ARRVAL_PP 聯(lián)合數(shù)組 HashTable *
Z_TYPE, Z_TYPE_P, Z_TYPE_PP Zval類型 Enumeration (IS_NULL, IS_LONG, IS_DOUBLE, IS_STRING, IS_ARRAY, IS_OBJECT, IS_BOOL, IS_RESOURCE)
Z_OBJPROP, Z_OBJPROP_P, Z_OBJPROP_PP 對象屬性hash(本章不會談到) HashTable *
Z_OBJCE, Z_OBJCE_P, Z_OBJCE_PP 對象的類信息 zend_class_entry

用于訪問zval值的宏

所有的宏都有三種形式:一個是接受zval s,另外一個接受zval *s,最后一個接受zval **s。它們的區(qū)別是在命名上,第一個沒有后綴,zval *有后綴_P(代表一個指針),最后一個 zval **有后綴_PP(代表兩個指針)。
現(xiàn)在,你有足夠的信息來獨(dú)立完成 file_read()和 file_write()函數(shù)。這里是一個可能的實現(xiàn):

復(fù)制代碼 代碼如下:

PHP_FUNCTION(file_read){
int argc = ZEND_NUM_ARGS();
long size;
zval *filehandle = NULL;
FILE *fp;
char *result;
size_t bytes_read;
if (zend_parse_parameters(argc TSRMLS_CC, "rl", &filehandle,&size) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(fp, FILE *, &filehandle, -1, "standard-cfile", le_myfile);
result = (char *) emalloc(size+1);
bytes_read = fread(result, 1, size, fp);
result[bytes_read] = '\0';
RETURN_STRING(result, 0);
}
PHP_FUNCTION(file_write){
char *buffer = NULL;
int argc = ZEND_NUM_ARGS();
int buffer_len;
zval *filehandle = NULL;
FILE *fp;
if (zend_parse_parameters(argc TSRMLS_CC, "rs", &filehandle,&buffer, &buffer_len) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(fp, FILE *, &filehandle, -1, "standard-cfile", le_myfile);
if (fwrite(buffer, 1, buffer_len, fp) != buffer_len) {
RETURN_FALSE;
}
RETURN_TRUE;
}

測試擴(kuò)展
你現(xiàn)在可以編寫一個測試腳本來檢測擴(kuò)展是否工作正常。下面是一個示例腳本,該腳本打開文件test.txt,輸出文件類容到標(biāo)準(zhǔn)輸出,建立一個拷貝test.txt.new。
復(fù)制代碼 代碼如下:

<?php
$fp_in = file_open("test.txt", "r") or die("Unable to open input file\n");
$fp_out = file_open("test.txt.new", "w") or die("Unable to open output file\n");
while (!file_eof($fp_in)) {
$str = file_read($fp_in, 1024);
print($str);
file_write($fp_out, $str);
}
file_close($fp_in);
file_close($fp_out);
?>

全局變量
你可能希望在擴(kuò)展里使用全局C變量,無論是獨(dú)自在內(nèi)部使用或訪問php.ini文件中的INI擴(kuò)展注冊標(biāo)記(INI在下一節(jié)中討論)。因為PHP是為多線程環(huán)境而設(shè)計,所以不必定義全局變量。PHP提供了一個創(chuàng)建全局變量的機(jī)制,可以同時應(yīng)用在線程和非線程環(huán)境中。我們應(yīng)當(dāng)始終利用這個機(jī)制,而不要自主地定義全局變量。用一個宏訪問這些全局變量,使用起來就像普通全局變量一樣。

用于生成myfile工程骨架文件的ext_skel腳本創(chuàng)建了必要的代碼來支持全局變量。通過檢查php_myfile.h文件,你應(yīng)當(dāng)發(fā)現(xiàn)類似下面的被注釋掉的一節(jié),
復(fù)制代碼 代碼如下:

ZEND_BEGIN_MODULE_GLOBALS(myfile)
int global_value;
char *global_string;
ZEND_END_MODULE_GLOBALS(myfile)

你可以把這一節(jié)的注釋去掉,同時添加任何其他全局變量于這兩個宏之間。文件后部的幾行,骨架腳本自動地定義一個MYFILE_G(v)宏。這個宏應(yīng)當(dāng)被用于所有的代碼,以便訪問這些全局變量。這就確保在多線程環(huán)境中,訪問的全局變量僅是一個線程的拷貝,而不需要互斥的操作。

為了使全局變量有效,最后需要做的是把myfile.c:
復(fù)制代碼 代碼如下:

ZEND_DECLARE_MODULE_GLOBALS(myfile)

注釋去掉。

你也許希望在每次PHP請求的開始初始化全局變量。另外,做為一個例子,全局變量已指向了一個已分配的內(nèi)存,在每次PHP請求結(jié)束時需要釋放內(nèi)存。為了達(dá)到這些目的,全局變量機(jī)制提供了一個特殊的宏,用于注冊全局變量的構(gòu)造和析構(gòu)函數(shù)(參考表對宏參數(shù)的說明):
復(fù)制代碼 代碼如下:

ZEND_INIT_MODULE_GLOBALS(module_name, globals_ctor, globals_dtor)

表 ZEND_INIT_MODULE_GLOBALS 宏參數(shù)
參數(shù) 含義
module_name 與傳遞給ZEND_BEGIN_MODULE_GLOBALS()宏相同的擴(kuò)展名稱。
globals_ctor 構(gòu)造函數(shù)指針。在myfile擴(kuò)展里,函數(shù)原形與void php_myfile_init_globals(zend_myfile_globals *myfile_globals)類似
globals_dtor 析構(gòu)函數(shù)指針。例如,php_myfile_init_globals(zend_myfile_globals *myfile_globals)

你可以在myfile.c里看到如何使用構(gòu)造函數(shù)和ZEND_INIT_MODULE_GLOBALS()宏的示例。

添加自定義INI指令
INI文件(php.ini)的實現(xiàn)使得PHP擴(kuò)展注冊和監(jiān)聽各自的INI條目。如果這些INI條目由php.ini、Apache的htaccess或其他配置方法來賦值,注冊的INI變量總是更新到正確的值。整個INI框架有許多不同的選項以實現(xiàn)其靈活性。我們涉及一些基本的(也是個好的開端),借助本章的其他材料,我們就能夠應(yīng)付日常開發(fā)工作的需要。

通過在PHP_INI_BEGIN()/PHP_INI_END()宏之間的STD_PHP_INI_ENTRY()宏注冊PHP INI指令。例如在我們的例子里,myfile.c中的注冊過程應(yīng)當(dāng)如下:

復(fù)制代碼 代碼如下:

PHP_INI_BEGIN()
STD_PHP_INI_ENTRY("myfile.global_value", "42", PHP_INI_ALL, OnUpdateInt, global_value, zend_myfile_globals, myfile_globals)
STD_PHP_INI_ENTRY("myfile.global_string", "foobar", PHP_INI_ALL, OnUpdateString, global_string, zend_myfile_globals, myfile_globals)
PHP_INI_END()


除了STD_PHP_INI_ENTRY()其他宏也能夠使用,但這個宏是最常用的,可以滿足大多數(shù)需要(參看表對宏參數(shù)的說明):
復(fù)制代碼 代碼如下:

STD_PHP_INI_ENTRY(name, default_value, modifiable, on_modify, property_name, struct_type, struct_ptr)

STD_PHP_INI_ENTRY 宏參數(shù)表
參數(shù) 含義
name INI條目名
default_value 如果沒有在INI文件中指定,條目的默認(rèn)值。默認(rèn)值始終是一個字符串。
modifiable 設(shè)定在何種環(huán)境下INI條目可以被更改的位域??梢缘闹凳牵?BR>• PHP_INI_SYSTEM. 能夠在php.ini或http.conf等系統(tǒng)文件更改
• PHP_INI_PERDIR. 能夠在 .htaccess中更改
• PHP_INI_USER. 能夠被用戶腳本更改
• PHP_INI_ALL. 能夠在所有地方更改
on_modify 處理INI條目更改的回調(diào)函數(shù)。你不需自己編寫處理程序,使用下面提供的函數(shù)。包括:
• OnUpdateInt
• OnUpdateString
• OnUpdateBool
• OnUpdateStringUnempty
• OnUpdateReal
property_name 應(yīng)當(dāng)被更新的變量名
struct_type 變量駐留的結(jié)構(gòu)類型。因為通常使用全局變量機(jī)制,所以這個類型自動被定義,類似于zend_myfile_globals。
struct_ptr 全局結(jié)構(gòu)名。如果使用全局變量機(jī)制,該名為myfile_globals。

最后,為了使自定義INI條目機(jī)制正常工作,你需要分別去掉PHP_MINIT_FUNCTION(myfile)中的REGISTER_INI_ENTRIES()調(diào)用和PHP_MSHUTDOWN_FUNCTION(myfile)中的UNREGISTER_INI_ENTRIES()的注釋。

訪問兩個示例全局變量中的一個與在擴(kuò)展里編寫MYFILE_G(global_value) 和MYFILE_G(global_string)一樣簡單。

如果你把下面的兩行放在php.ini中,MYFILE_G(global_value)的值會變?yōu)?9。
復(fù)制代碼 代碼如下:

; php.ini – The following line sets the INI entry myfile.global_value to 99.myfile.global_value = 9

線程安全資源管理宏
現(xiàn)在,你肯定注意到以TSRM(線程安全資源管理器)開頭的宏隨處使用。這些宏提供給擴(kuò)展擁有獨(dú)自的全局變量的可能,正如前面提到的。

當(dāng)編寫PHP擴(kuò)展時,無論是在多進(jìn)程或多線程環(huán)境中,都是依靠這一機(jī)制訪問擴(kuò)展自己的全局變量。如果使用全局變量訪問宏(例如MYFILE_G()宏),需要確保TSRM上下文信息出現(xiàn)在當(dāng)前函數(shù)中。基于性能的原因,Zend引擎試圖把這個上下文信息作為參數(shù)傳遞到更多的地方,包括PHP_FUNCTION()的定義。正因為這樣,在PHP_FUNCTION()內(nèi)當(dāng)編寫的代碼使用訪問宏(例如MYFILE_G()宏)時,不需要做任何特殊的聲明。然而,如果PHP函數(shù)調(diào)用其他需要訪問全局變量的C函數(shù),要么把上下文作為一個額外的參數(shù)傳遞給C函數(shù),要么提取上下文(要慢點(diǎn))。

在需要訪問全局變量的代碼塊開頭使用TSRMLS_FETCH()來提取上下文。例如:
復(fù)制代碼 代碼如下:

void myfunc(){
TSRMLS_FETCH();

MYFILE_G(myglobal) = 2;
}

如果希望讓代碼更加優(yōu)化,更好的辦法是直接傳遞上下文給函數(shù)(正如前面敘述的,PHP_FUNCTION()范圍內(nèi)自動可用)??梢允褂肨SRMLS_C(C表示調(diào)用Call)和TSRMLS_CC(CC邊式調(diào)用Call和逗號Comma)宏。前者應(yīng)當(dāng)用于僅當(dāng)上下文作為一個單獨(dú)的參數(shù),后者應(yīng)用于接受多個參數(shù)的函數(shù)。在后一種情況中,因為根據(jù)取名,逗號在上下文的前面,所以TSRMLS_CC不能是第一個函數(shù)參。

在函數(shù)原形中,可以分別使用TSRMLS_D和TSRMLS_DC宏聲名正在接收上下文。

下面是前一例子的重寫,利用了參數(shù)傳遞上下文。
復(fù)制代碼 代碼如下:

void myfunc(TSRMLS_D){
MYFILE_G(myglobal) = 2;
}
PHP_FUNCTION(my_php_function)
{

myfunc(TSRMLS_C);

}
~

總 結(jié)
現(xiàn)在,你已經(jīng)學(xué)到了足夠的東西來創(chuàng)建自己的擴(kuò)展。本章講述了一些重要的基礎(chǔ)來編寫和理解PHP擴(kuò)展。Zend引擎提供的擴(kuò)展API相當(dāng)豐富,使你能夠開發(fā)面向?qū)ο蟮臄U(kuò)展。幾乎沒有文檔談幾許多高級特性。當(dāng)然,依靠本章所學(xué)的基礎(chǔ)知識,你可以通過瀏覽現(xiàn)有的原碼學(xué)到很多。

更多關(guān)于信息可以在PHP手冊的擴(kuò)展PHP章節(jié)http://www.php.net/manual/en/zend.php中找到。另外,你也可以考慮加入PHP開發(fā)者郵件列表internals@ lists.php.net,該郵件列表圍繞開發(fā)PHP 本身。你還可以查看一下新的擴(kuò)展生成工具——PECL_Gen(http://pear.php.net/package/PECL_Gen),這個工具正在開發(fā)之中,比起本章使用的ext_skel有更多的特性。

此外你還可以關(guān)注風(fēng)雪之隅, 會有更多相關(guān)知識更新.

詞匯表
binary safe 二進(jìn)制安全
context 上下文
extensions 擴(kuò)展
entry 條目
skeleton 骨架
Thread-Safe Resource Manager TSRM 線程安全資源管理器

[1] 可參考譯者寫的
[2] 譯者:可以使用phpcli程序在控制臺里執(zhí)行php文件。
[3] 譯者:可以查看到生成的FETCH_RESOURCE()宏參數(shù)是一些'???'。

相關(guān)文章

  • PHP中imagick函數(shù)的中文解釋

    PHP中imagick函數(shù)的中文解釋

    這篇文章主要介紹了PHP中imagick函數(shù)的中文解釋,ImageMagick是一套功能強(qiáng)大、穩(wěn)定而且免費(fèi)的工具集和開發(fā)包,可以用來讀、寫和處理超過185種基本格式的圖片文件,包括流行的TIFF、JPEG、GIF、PNG、PDF以及PhotoCD等格式,需要的朋友可以參考下
    2015-01-01
  • PHP利用緩存處理用戶注冊時的郵箱驗證,成功后用戶數(shù)據(jù)存入數(shù)據(jù)庫操作示例

    PHP利用緩存處理用戶注冊時的郵箱驗證,成功后用戶數(shù)據(jù)存入數(shù)據(jù)庫操作示例

    這篇文章主要介紹了PHP利用緩存處理用戶注冊時的郵箱驗證,成功后用戶數(shù)據(jù)存入數(shù)據(jù)庫操作,涉及PHP操作Memcache緩存驗證登錄與數(shù)據(jù)庫寫入相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2019-12-12
  • 修改PHP的memory_limit限制的方法分享

    修改PHP的memory_limit限制的方法分享

    在運(yùn)行PHP程序,通常會遇到“Fatal Error: Allowed memory size of xxxxxx bytes exhausted”的錯誤, 這個意味著PHP腳本使用了過多的內(nèi)存,并超出了系統(tǒng)對其設(shè)置的允許最大內(nèi)存
    2012-02-02
  • PHP使用Swagger生成好看的API文檔

    PHP使用Swagger生成好看的API文檔

    api文檔不能根據(jù)代碼的變化發(fā)生實時動態(tài)的改變,這樣后端修改了接口,前端不能及時獲取最新的接口,導(dǎo)致調(diào)用出錯,需要手動維護(hù)api文檔,加大了開發(fā)的工作量和困難,而swagger的出現(xiàn)就是為了解決這一系列的問題
    2023-02-02
  • php根據(jù)命令行參數(shù)生成配置文件詳解

    php根據(jù)命令行參數(shù)生成配置文件詳解

    這篇文章主要介紹了php根據(jù)命令行參數(shù)生成配置文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • php計算多維數(shù)組中所有值總和的方法

    php計算多維數(shù)組中所有值總和的方法

    這篇文章主要介紹了php計算多維數(shù)組中所有值總和的方法,涉及php針對多維數(shù)組遞歸調(diào)用的技巧
    2015-06-06
  • windows下開發(fā)并編譯PHP擴(kuò)展的方法

    windows下開發(fā)并編譯PHP擴(kuò)展的方法

    開發(fā)PHP擴(kuò)展對于普通程序員來講可能一直是一件很神秘的工作,其實,只要你對C語言熟悉,了解了開發(fā)PHP擴(kuò)展的步驟和規(guī)則,開發(fā)PHP擴(kuò)展也是一件很普通的工作。
    2011-03-03
  • 解析PHP實現(xiàn)多進(jìn)程并行執(zhí)行腳本

    解析PHP實現(xiàn)多進(jìn)程并行執(zhí)行腳本

    本篇文章是對PHP實現(xiàn)多進(jìn)程并行執(zhí)行腳本進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php命令行(cli)下執(zhí)行PHP腳本文件的相對路徑的問題解決方法

    php命令行(cli)下執(zhí)行PHP腳本文件的相對路徑的問題解決方法

    這篇文章主要介紹了php命令行(cli)下執(zhí)行PHP腳本文件的相對路徑的問題解決方法,特別是在crontab中運(yùn)行PHP腳本時,肯定會遇到路徑問題,參照本文方法即可解決,需要的朋友可以參考下
    2015-05-05
  • php校驗公鑰是否可用的實例方法

    php校驗公鑰是否可用的實例方法

    在本文里小編給大家整理的是一篇關(guān)于php校驗公鑰是否可用的知識點(diǎn)內(nèi)容,需要的朋友們參考下。
    2019-09-09

最新評論

超碰公开大香蕉97| 欧美精品国产综合久久| 日本韩国免费一区二区三区视频| 免费观看国产综合视频| 天天干天天日天天谢综合156| 青青草原网站在线观看| 75国产综合在线视频| 久久免费看少妇高潮完整版| 97人妻人人澡爽人人精品| 鸡巴操逼一级黄色气| 男人的网址你懂的亚洲欧洲av| 欧美亚洲国产成人免费在线| 最近中文2019年在线看| 久久www免费人成一看片| 91麻豆精品秘密入口在线观看| 2020韩国午夜女主播在线| 精品一区二区三区三区色爱| 国产精品国产精品一区二区| 亚洲国产成人无码麻豆艾秋| 蜜桃久久久久久久人妻| 欧美第一页在线免费观看视频| 综合国产成人在线观看| 日本免费视频午夜福利视频| aaa久久久久久久久| 和邻居少妇愉情中文字幕| 久草福利电影在线观看| 亚洲人妻国产精品综合| 91自产国产精品视频| 国产福利小视频二区| 2017亚洲男人天堂| 色偷偷伊人大杳蕉综合网| rct470中文字幕在线| 5528327男人天堂| 97色视频在线观看| 亚洲午夜福利中文乱码字幕| 在线免费观看国产精品黄色| 亚洲国产精品久久久久久6| 色吉吉影音天天干天天操| 精品一区二区三区在线观看| 婷婷综合蜜桃av在线| 女同性ⅹxx女同h偷拍| 国产精品黄页网站视频| 国产午夜男女爽爽爽爽爽视频| 不卡一区一区三区在线| 国产精品福利小视频a| 中文字幕无码日韩专区免费| 国产实拍勾搭女技师av在线| 91天堂精品一区二区| 黑人解禁人妻叶爱071| 中文字幕在线一区精品| 超污视频在线观看污污污| 婷婷综合亚洲爱久久| 女警官打开双腿沦为性奴| 啪啪啪啪啪啪啪啪av| 亚洲一区二区三区在线高清| 久久h视频在线观看| 亚洲中文字字幕乱码| 抽查舔水白紧大视频| 日本阿v视频在线免费观看| 欧美精产国品一二三区| 国产+亚洲+欧美+另类| 国产精品人妻66p| 欧洲国产成人精品91铁牛tv| 欧美专区日韩专区国产专区| 免费男阳茎伸入女阳道视频| 黑人借宿ntr人妻的沦陷2| 亚洲午夜在线视频福利| 人人妻人人人操人人人爽| 男大肉棒猛烈插女免费视频| 91中文字幕免费在线观看| 久久精品视频一区二区三区四区| 一区二区三区四区视频| 热99re69精品8在线播放| 男人和女人激情视频| 中文字幕综合一区二区| 日韩成人免费电影二区| 大鸡吧插入女阴道黄色片| 97国产在线观看高清| 亚洲一级 片内射视正片| 亚洲久久午夜av一区二区| 岛国青草视频在线观看| 在线制服丝袜中文字幕| 国产亚洲国产av网站在线| 懂色av蜜桃a v| 在线免费观看亚洲精品电影| av天堂中文字幕最新| 天天操天天干天天插| 亚洲av日韩精品久久久久久hd| 成年人中文字幕在线观看| 成人激情文学网人妻| 亚洲变态另类色图天堂网| 欧美综合婷婷欧美综合| 亚洲特黄aaaa片| 亚洲成人精品女人久久久| 偷拍自拍亚洲美腿丝袜| 天天爽夜夜爽人人爽QC| 熟女视频一区,二区,三区| 精品欧美一区二区vr在线观看| 欧美一级色视频美日韩| av破解版在线观看| 亚洲乱码中文字幕在线| 一区二区三区久久久91| 九一传媒制片厂视频在线免费观看| 亚洲精品无码色午夜福利理论片| 国产精品免费不卡av| 亚洲一区二区久久久人妻| 白嫩白嫩美女极品国产在线观看| 亚洲国产欧美一区二区三区久久| 亚洲一区二区三区在线高清| 91精品国产综合久久久蜜| 亚洲av日韩精品久久久久久hd| 91高清成人在线视频| 中文字幕 人妻精品| 欧亚乱色一区二区三区| 91自产国产精品视频| 污污小视频91在线观看| 在线国产中文字幕视频| 国产精品自拍偷拍a| 日本一区二区三区免费小视频| 毛片av在线免费看| 欧美日韩不卡一区不区二区| 男大肉棒猛烈插女免费视频| caoporm超碰国产| 福利在线视频网址导航| 91精品视频在线观看免费| 国产在线拍揄自揄视频网站| 亚洲视频在线视频看视频在线| 欧美aa一级一区三区四区| 水蜜桃一区二区三区在线观看视频| 快点插进来操我逼啊视频| xxx日本hd高清| 五十路在线观看完整版| 亚洲图片欧美校园春色| 综合一区二区三区蜜臀| 护士特殊服务久久久久久久| 午夜国产免费福利av| 亚洲精品午夜久久久久| 爱有来生高清在线中文字幕| 少妇人妻二三区视频 | 中文字幕午夜免费福利视频| 国产精品精品精品999| 天堂中文字幕翔田av| 88成人免费av网站| 亚洲嫩模一区二区三区| 美女在线观看日本亚洲一区| 在线播放国产黄色av| 国产亚洲成人免费在线观看| 在线视频自拍第三页| 日本一本午夜在线播放| 亚洲综合在线观看免费| 精品美女在线观看视频在线观看| 天天干天天操天天爽天天摸| 亚洲1069综合男同| 综合激情网激情五月五月婷婷| 亚洲精品在线资源站| 欧美精产国品一二三区| 欧美日韩亚洲国产无线码| 超级av免费观看一区二区三区| 国产在线免费观看成人| 日韩美女精品视频在线观看网站| 国产又粗又猛又爽又黄的视频美国| 和邻居少妇愉情中文字幕| 一区二区三区日本伦理| 大屁股肉感人妻中文字幕在线| weyvv5国产成人精品的视频| 国产黑丝高跟鞋视频在线播放| 天天干天天操天天扣| 午夜毛片不卡免费观看视频| 2020久久躁狠狠躁夜夜躁| 午夜久久久久久久99| 成年人黄视频在线观看| 2018在线福利视频| av视屏免费在线播放| 国产白嫩美女一区二区| 欧美日韩亚洲国产无线码| 日本特级片中文字幕| 精品老妇女久久9g国产| 欧洲亚洲欧美日韩综合| 天天日天天干天天插舔舔| 91中文字幕免费在线观看| 亚洲精品在线资源站| 97欧洲一区二区精品免费 | 欧美成人黄片一区二区三区| 自拍偷拍vs一区二区三区| 91在线免费观看成人| 好男人视频在线免费观看网站| 丰满少妇人妻xxxxx| 久草极品美女视频在线观看| 我想看操逼黄色大片| 午夜精彩视频免费一区| 天天色天天操天天透| 欧美美女人体视频一区| 2017亚洲男人天堂| 日韩三级黄色片网站| 亚洲成人午夜电影在线观看| 熟女在线视频一区二区三区| 中文字幕在线永久免费播放| 天天躁日日躁狠狠躁av麻豆| 免费费一级特黄真人片| 夜夜嗨av一区二区三区中文字幕| 888亚洲欧美国产va在线播放| 久久亚洲天堂中文对白| 免费看国产av网站| 成人精品视频99第一页| 久久久麻豆精亚洲av麻花| 东京热男人的av天堂| 亚洲av第国产精品| 91精品啪在线免费| 乱亲女秽乱长久久久| 国产卡一卡二卡三乱码手机| 日本成人不卡一区二区| 美洲精品一二三产区区别| 国产亚洲欧美另类在线观看| 日本一区精品视频在线观看| 福利视频一区二区三区筱慧| 美女 午夜 在线视频| av森泽佳奈在线观看| 一级黄片大鸡巴插入美女| 日本后入视频在线观看| 成年午夜免费无码区| 水蜜桃国产一区二区三区| 99久久99久国产黄毛片| 日韩中文字幕在线播放第二页| 不卡一区一区三区在线| 在线可以看的视频你懂的| 在线观看911精品国产| 一区二区三区麻豆福利视频| 91精品综合久久久久3d动漫 | 91‖亚洲‖国产熟女| 国产午夜亚洲精品麻豆| 99的爱精品免费视频| 视频一区 视频二区 视频| 又色又爽又黄又刺激av网站| 香港一级特黄大片在线播放| 经典亚洲伊人第一页| 国产精品国产三级麻豆| 2025年人妻中文字幕乱码在线| 大鸡吧插入女阴道黄色片| 97国产精品97久久| 99av国产精品欲麻豆| 91she九色精品国产| 视频一区二区综合精品| 午夜精彩视频免费一区| 青青热久免费精品视频在线观看| 国产在线观看免费人成短视频| 欧美特色aaa大片| 亚洲午夜电影之麻豆| 免费男阳茎伸入女阳道视频| 亚洲欧美久久久久久久久| 丁香花免费在线观看中文字幕| 亚洲女人的天堂av| 日本黄色三级高清视频| 中文字幕在线乱码一区二区| 少妇高潮一区二区三区| 中文字幕欧美日韩射射一| 77久久久久国产精产品| 亚洲熟女女同志女同| 亚洲成a人片777777| 91九色国产porny蝌蚪| 日本黄色三级高清视频| 任我爽精品视频在线播放| 久久久久国产成人精品亚洲午夜| 春色激情网欧美成人| 欧美韩国日本国产亚洲| 欧美成一区二区三区四区| 欧美女同性恋免费a| 天天操天天弄天天射| 婷婷综合亚洲爱久久| 欧美国产亚洲中英文字幕| aⅴ五十路av熟女中出| 中文字幕人妻熟女在线电影| 在线制服丝袜中文字幕| 中文字幕人妻一区二区视频| 亚洲另类图片蜜臀av| 精品国产乱码一区二区三区乱| 日韩加勒比东京热二区| 久久99久久99精品影院| av日韩在线观看大全| 欧美性受xx黑人性猛交| 91精品国产麻豆国产| 欧美地区一二三专区| 熟女少妇激情五十路| 久久久久久久精品成人热| 午夜久久久久久久99| 毛片av在线免费看| 日本女人一级免费片| 亚洲av香蕉一区区二区三区犇| 在线网站你懂得老司机| 100%美女蜜桃视频| 欧美天堂av无线av欧美| 把腿张开让我插进去视频| 午夜福利人人妻人人澡人人爽| 99精品视频在线观看婷婷| 日辽宁老肥女在线观看视频| 丰满的子国产在线观看| 国产夫妻视频在线观看免费| 黄色视频在线观看高清无码| 一二三中文乱码亚洲乱码one| wwwxxx一级黄色片| 婷婷午夜国产精品久久久| 欧美伊人久久大香线蕉综合| 欧美爆乳肉感大码在线观看| 香蕉aⅴ一区二区三区| 日韩成人综艺在线播放| 自拍偷拍日韩欧美亚洲| 青青草成人福利电影| 香港三日本三韩国三欧美三级| 美女小视频网站在线| 女同久久精品秋霞网| 日本高清成人一区二区三区| 欧美一区二区三区久久久aaa| v888av在线观看视频| 青青青国产免费视频| 国产精品入口麻豆啊啊啊| 久草视频在线免播放| 骚货自慰被发现爆操| 91免费黄片可看视频| 高清一区二区欧美系列| 亚洲一区二区三区五区| 中出中文字幕在线观看| 无忧传媒在线观看视频| 91色网站免费在线观看| 久久亚洲天堂中文对白| 老有所依在线观看完整版| 成年人该看的视频黄免费| 亚洲国产美女一区二区三区软件 | av日韩在线观看大全| 黄色资源视频网站日韩| 国产精品国色综合久久| 换爱交换乱高清大片| 久草视频福利在线首页| 黄色av网站免费在线| 一区二区三区在线视频福利| 亚洲激情av一区二区| 真实国产乱子伦一区二区| 美女日逼视频免费观看| 五十路息与子猛烈交尾视频| 最近的中文字幕在线mv视频| 日韩精品中文字幕在线| 午夜国产福利在线观看| 成人资源在线观看免费官网 | 亚洲av日韩高清hd| 六月婷婷激情一区二区三区| 熟妇一区二区三区高清版| 动漫av网站18禁| 国产伊人免费在线播放| 午夜在线观看岛国av,com| 大鸡吧插逼逼视频免费看 | 91色老99久久九九爱精品| 欧美日韩v中文在线| 亚洲男人在线天堂网| 欧美日韩激情啪啪啪| 91破解版永久免费| 欧美成人精品欧美一级黄色| lutube在线成人免费看| 在线观看国产免费麻豆| 日本中文字幕一二区视频| 黄色资源视频网站日韩| 一区二区三区久久中文字幕| 中国黄片视频一区91| 亚洲成人熟妇一区二区三区| 日噜噜噜夜夜噜噜噜天天噜噜噜| 国产精彩对白一区二区三区| 偷青青国产精品青青在线观看| 中文字幕奴隷色的舞台50| 自拍偷拍日韩欧美亚洲| 偷青青国产精品青青在线观看| 国产又粗又猛又爽又黄的视频美国| 久草视频在线一区二区三区资源站| brazzers欧熟精品系列| 国产成人小视频在线观看无遮挡| 91麻豆精品91久久久久同性| 日本一道二三区视频久久| 午夜精品一区二区三区城中村| 亚洲成人国产综合一区| 午夜国产免费福利av| 老司机福利精品免费视频一区二区| 亚洲综合另类欧美久久| 中文字幕无码一区二区免费| 色婷婷精品大在线观看| 自拍 日韩 欧美激情| 粉嫩小穴流水视频在线观看| 1区2区3区不卡视频| 国产熟妇人妻ⅹxxxx麻豆| 农村胖女人操逼视频| 老有所依在线观看完整版| 青青青青草手机在线视频免费看| 成人国产影院在线观看| 国产精品手机在线看片| 久久精品亚洲国产av香蕉| 欧美黑人与人妻精品| 日韩三级电影华丽的外出 | 最新国产精品拍在线观看| 欧美日韩一级黄片免费观看| 一区二区麻豆传媒黄片| 天天日天天干天天插舔舔| 精品视频一区二区三区四区五区| 成年人黄视频在线观看| 中文字幕在线观看国产片| 日韩av中文在线免费观看| 一区国内二区日韩三区欧美| 日本欧美视频在线观看三区| 青草亚洲视频在线观看| 一区二区三区麻豆福利视频| 欧美色婷婷综合在线| 国产熟妇人妻ⅹxxxx麻豆| 91国产资源在线视频| 亚洲日产av一区二区在线| 91超碰青青中文字幕| 91九色porny蝌蚪国产成人| 99精品视频在线观看免费播放 | 欲乱人妻少妇在线视频裸| 成人综合亚洲欧美一区| 亚洲成人情色电影在线观看| v888av在线观看视频| 又粗又长 明星操逼小视频 | 国产精品久久久久国产三级试频 | 大香蕉伊人中文字幕| 日本一本午夜在线播放| 成人蜜桃美臀九一一区二区三区| 国语对白xxxx乱大交| 青青青爽视频在线播放| 亚洲欧美久久久久久久久| 亚洲人成精品久久久久久久| 天天艹天天干天天操| av天堂中文字幕最新| 欧美第一页在线免费观看视频| 天天摸天天日天天操| 少妇人妻久久久久视频黄片| 不卡一不卡二不卡三| 又大又湿又爽又紧A视频| 在线观看操大逼视频| 天天日天天操天天摸天天舔| 自拍偷拍亚洲另类色图| 中国产一级黄片免费视频播放| 男人靠女人的逼视频| 93人妻人人揉人人澡人人| 四虎永久在线精品免费区二区| 国产aⅴ一线在线观看| 成人久久精品一区二区三区| 美女张开腿让男生操在线看| 欧美精品中文字幕久久二区| 久久午夜夜伦痒痒想咳嗽P| 欧美精品 日韩国产| 亚洲av日韩高清hd| 亚洲另类伦春色综合小| 最近的中文字幕在线mv视频| 91精品高清一区二区三区| 青青草成人福利电影| 2018最新中文字幕在线观看| 亚洲综合图片20p| 久草视频 久草视频2| 色秀欧美视频第一页| 国产高清在线观看1区2区| 日韩av大胆在线观看| 99精品视频在线观看婷婷| 888欧美视频在线| 91色九色porny| 国产精品自拍在线视频| 午夜婷婷在线观看视频| 国产又粗又硬又大视频| 亚洲一区二区激情在线| 2021久久免费视频| 欲满人妻中文字幕在线| 一区二区三区美女毛片| 欧亚日韩一区二区三区观看视频| 四虎永久在线精品免费区二区| 日本男女操逼视频免费看| 国产精品人久久久久久| 97国产福利小视频合集| 欧美精品国产综合久久| 福利视频一区二区三区筱慧| 好男人视频在线免费观看网站| 久久一区二区三区人妻欧美| 在线免费观看国产精品黄色| 中国产一级黄片免费视频播放| 51国产偷自视频在线播放 | 色爱av一区二区三区| 欧美亚洲免费视频观看| 骚逼被大屌狂草视频免费看| 国产三级片久久久久久久| 亚洲熟色妇av日韩熟色妇在线| 成人福利视频免费在线| 亚洲日本一区二区三区| 91精品激情五月婷婷在线| 人妻少妇一区二区三区蜜桃| 日本成人一区二区不卡免费在线| 日韩在线中文字幕色| 日本黄色三级高清视频| 婷婷久久一区二区字幕网址你懂得 | 超碰在线中文字幕一区二区| 国产91精品拍在线观看| 日韩欧美高清免费在线| 福利一二三在线视频观看| 精品久久久久久久久久久久人妻 | 国内资源最丰富的网站| 国产内射中出在线观看| 亚洲老熟妇日本老妇| 都市激情校园春色狠狠| 直接观看免费黄网站| 青青草人人妻人人妻| 日韩一区二区三区三州| 日本丰满熟妇大屁股久久| 亚洲1卡2卡三卡4卡在线观看| 91国内精品久久久久精品一| 91av精品视频在线| 精品一区二区三区三区88| 日韩人妻xxxxx| 少妇系列一区二区三区视频| 男人的天堂av日韩亚洲| 黄色三级网站免费下载| 熟女人妻一区二区精品视频| 日韩美女福利视频网| 55夜色66夜色国产精品站| 国产美女精品福利在线| 啊啊好大好爽啊啊操我啊啊视频| 午夜久久久久久久99| 唐人色亚洲av嫩草| 日韩三级电影华丽的外出| www日韩毛片av| 亚洲在线观看中文字幕av| 蜜臀成人av在线播放| 白嫩白嫩美女极品国产在线观看 | 超污视频在线观看污污污| 精品一区二区三区欧美| 欧美xxx成人在线| 日本美女成人在线视频| 国产一区二区视频观看| 999热精品视频在线| 国产又大又黄免费观看| 9色精品视频在线观看| 精品suv一区二区69| 11久久久久久久久久久| 亚洲伊人久久精品影院一美女洗澡 | 黄色男人的天堂视频| 免费在线观看污污视频网站| av手机在线观播放网站| 一级黄色片夫妻性生活| 婷婷激情四射在线观看视频| 瑟瑟视频在线观看免费视频| 欧美日韩国产一区二区三区三州| 日视频免费在线观看| 自拍偷拍vs一区二区三区| 视频在线亚洲一区二区| 美女 午夜 在线视频| 日韩精品一区二区三区在线播放| 久久久久五月天丁香社区| 亚洲免费视频欧洲免费视频| 人人妻人人爽人人添夜| 日本美女性生活一级片| 青青尤物在线观看视频网站| av中文字幕在线导航| 国产成人精品av网站| 久久麻豆亚洲精品av| 亚洲成人情色电影在线观看| 好吊视频—区二区三区| 在线观看av观看av| 老司机你懂得福利视频| 国产精品大陆在线2019不卡| 极品丝袜一区二区三区| 午夜蜜桃一区二区三区| 国产综合高清在线观看| 桃色视频在线观看一区二区| 少妇人妻真实精品视频| 精品久久久久久久久久久a√国产| 91在线视频在线精品3| 亚洲无线观看国产高清在线| 亚洲欧美激情人妻偷拍| 国产午夜亚洲精品麻豆| 久久亚洲天堂中文对白| 91亚洲国产成人精品性色| 2020久久躁狠狠躁夜夜躁 | 亚洲国产欧美一区二区三区…| 日本欧美视频在线观看三区| 日韩影片一区二区三区不卡免费 | 少妇人妻久久久久视频黄片| 大鸡巴操b视频在线| 98精产国品一二三产区区别| 1区2区3区4区视频在线观看| 不卡精品视频在线观看| 中文字母永久播放1区2区3区| 粗大的内捧猛烈进出爽大牛汉子| 欧美地区一二三专区| 99热国产精品666| 大鸡吧插入女阴道黄色片| 狠狠嗨日韩综合久久| 亚洲免费国产在线日韩| 天天日天天干天天干天天日| 亚洲国产成人在线一区| 97超碰国语国产97超碰| 日韩三级黄色片网站| 中文字幕成人日韩欧美| 日韩人妻在线视频免费| 国产老熟女伦老熟妇ⅹ| 亚洲国产精品美女在线观看| 久久精品美女免费视频| 免费看国产av网站| 97年大学生大白天操逼| 亚洲av午夜免费观看| 青青青青青青青青青青草青青| 男人在床上插女人视频| 亚洲va天堂va国产va久| 玖玖一区二区在线观看| 精品一区二区三区在线观看| 亚洲精品无码色午夜福利理论片| 丝袜肉丝一区二区三区四区在线| 亚洲自拍偷拍综合色| 中文人妻AV久久人妻水| 黄色在线观看免费观看在线| 免费一级黄色av网站| 动漫黑丝美女的鸡巴| 中国黄色av一级片| 美女吃鸡巴操逼高潮视频| 亚洲激情唯美亚洲激情图片| 欧美3p在线观看一区二区三区| 五十路熟女av天堂| 超碰97免费人妻麻豆| 亚洲第一黄色在线观看| 视频一区二区综合精品| 亚洲中文字字幕乱码| 免费在线黄色观看网站| free性日本少妇| 国产大学生援交正在播放| 亚洲老熟妇日本老妇| 蜜臀av久久久久久久| 亚洲美女自偷自拍11页| 丝袜国产专区在线观看| 国产一区二区欧美三区| 91久久人澡人人添人人爽乱| 久久久麻豆精亚洲av麻花| 日本免费午夜视频网站| 在线观看视频一区麻豆| 一区二区三区视频,福利一区二区| 欧美在线精品一区二区三区视频| 久久这里有免费精品| 国产又色又刺激在线视频 | 女生被男生插的视频网站| 熟女在线视频一区二区三区| 黄片色呦呦视频免费看| 精品国产高潮中文字幕| 骚逼被大屌狂草视频免费看| 午夜激情高清在线观看| 免费观看丰满少妇做受| 欧美激情精品在线观看| 在线免费观看国产精品黄色| lutube在线成人免费看| 中出中文字幕在线观看| 瑟瑟视频在线观看免费视频| 免费看国产又粗又猛又爽又黄视频| 制服丝袜在线人妻中文字幕| 操的小逼流水的文章| 一色桃子久久精品亚洲| 和邻居少妇愉情中文字幕| 午夜在线精品偷拍一区二| 中字幕人妻熟女人妻a62v网 | 人妻素人精油按摩中出| 在线观看免费岛国av| 亚洲美女自偷自拍11页| 欧美日韩高清午夜蜜桃大香蕉| 91国产资源在线视频| 91麻豆精品秘密入口在线观看| 亚洲国产精品美女在线观看| 天天日天天天天天天天天天天| 亚洲一区二区三区偷拍女厕91| 美女张开腿让男生操在线看| 天天日天天爽天天干| 国产精品大陆在线2019不卡| 绝顶痉挛大潮喷高潮无码| 亚洲欧美福利在线观看| 国内精品在线播放第一页| 日本少妇高清视频xxxxx| 天天插天天色天天日| 和邻居少妇愉情中文字幕| 最新激情中文字幕视频| 亚洲女人的天堂av| 91福利视频免费在线观看| 91快播视频在线观看| 亚洲欧美另类手机在线| 天天艹天天干天天操| av一本二本在线观看| 免费无码人妻日韩精品一区二区| 青青青青青青草国产| 免费在线播放a级片| 欧美香蕉人妻精品一区二区| 只有精品亚洲视频在线观看| 午夜福利资源综合激情午夜福利资| 男人操女人逼逼视频网站| 欧美麻豆av在线播放| av中文字幕在线导航| 93精品视频在线观看| 青青青aaaa免费| 国产精品三级三级三级| 亚洲激情偷拍一区二区| 欧美特级特黄a大片免费| 成人免费公开视频无毒| 狍和女人的王色毛片| 日本一二三区不卡无| 欲满人妻中文字幕在线| 一级A一级a爰片免费免会员| 欧美成人精品在线观看| 在线免费观看黄页视频| 久草免费人妻视频在线| 午夜久久香蕉电影网| 青青青青青青青青青青草青青| sspd152中文字幕在线| 亚洲Av无码国产综合色区| 色偷偷伊人大杳蕉综合网 | 75国产综合在线视频| 骚逼被大屌狂草视频免费看| 99久久超碰人妻国产| 青青青国产片免费观看视频| 高潮视频在线快速观看国家快速| okirakuhuhu在线观看| 在线观看视频 你懂的| 91‖亚洲‖国产熟女| 五十路息与子猛烈交尾视频 | 精品久久久久久高潮| 福利视频广场一区二区| 色狠狠av线不卡香蕉一区二区| 久久精品久久精品亚洲人| 人人妻人人爽人人澡人人精品| 大陆av手机在线观看| 国产视频一区在线观看| 夜色福利视频在线观看| 在线免费观看日本伦理| 91精品国产91久久自产久强 | 午夜婷婷在线观看视频| 成人蜜臀午夜久久一区| 精品久久久久久久久久久久人妻 | 九色精品视频在线播放| 欧美成一区二区三区四区| 天天想要天天操天天干| 日本福利午夜电影在线观看| 在线免费观看欧美小视频| 日韩熟女系列一区二区三区| 嫩草aⅴ一区二区三区| 欧美男同性恋69视频| 天堂v男人视频在线观看| 超级福利视频在线观看| 国产精品久久久久网| 视频二区在线视频观看| 护士特殊服务久久久久久久| 晚上一个人看操B片| 在线网站你懂得老司机| 国产日韩欧美美利坚蜜臀懂色| 福利视频一区二区三区筱慧 | 亚洲国产精品久久久久久6| 啊慢点鸡巴太大了啊舒服视频| 亚洲成人情色电影在线观看| 国产成人综合一区2区| 馒头大胆亚洲一区二区| 免费人成黄页网站在线观看国产| 亚洲va国产va欧美va在线| 偷拍自拍福利视频在线观看| 亚洲 色图 偷拍 欧美| 91亚洲精品干熟女蜜桃频道| 免费观看成年人视频在线观看| 亚洲精品 日韩电影| 99久久成人日韩欧美精品| 夜夜嗨av一区二区三区中文字幕| 亚国产成人精品久久久| 超碰在线观看免费在线观看| 色秀欧美视频第一页| 欧美在线精品一区二区三区视频 | 大胸性感美女羞爽操逼毛片| 天天日天天敢天天干| 18禁无翼鸟成人在线| 2022国产综合在线干| 亚国产成人精品久久久| 亚洲一级 片内射视正片| 日本成人不卡一区二区| 日韩二区视频一线天婷婷五| 欧美精品 日韩国产| 大鸡吧插入女阴道黄色片| 国产白袜脚足J棉袜在线观看| 国产亚洲视频在线观看| 亚洲午夜高清在线观看| 欧美精品免费aaaaaa| 一本久久精品一区二区| 在线观看免费av网址大全| 激情图片日韩欧美人妻| 国产剧情演绎系列丝袜高跟| 国产女孩喷水在线观看| 久久久久只精品国产三级| 一区二区三区四区视频在线播放 | 日韩熟女av天堂系列| 久久久久久国产精品| 一区二区三区另类在线| 偷拍自拍亚洲视频在线观看| 在线国产中文字幕视频| 国产男女视频在线播放| 免费岛国喷水视频在线观看| 国产成人小视频在线观看无遮挡| 在线 中文字幕 一区| 精品人妻伦一二三区久| 欧美精产国品一二三产品区别大吗| 男生用鸡操女生视频动漫| 精品成人啪啪18免费蜜臀| 国产精品视频一区在线播放| 黑人性生活视频免费看| 视频在线亚洲一区二区| 欧美黄色录像免费看的| 中文字日产幕乱六区蜜桃| 综合色区亚洲熟妇shxstz| 91国产在线免费播放| 亚洲女人的天堂av| 天堂av在线官网中文| 班长撕开乳罩揉我胸好爽| 99精品国产自在现线观看| 超级av免费观看一区二区三区| 亚洲第17页国产精品| 精品久久久久久久久久久99| 精品一区二区三四区| 国产视频精品资源网站| 成年人的在线免费视频| 日韩av有码一区二区三区4| 黄色无码鸡吧操逼视频| 同居了嫂子在线播高清中文| 天天日天天玩天天摸| 福利视频网久久91| 欧美aa一级一区三区四区| 中文字日产幕乱六区蜜桃| 黄色视频成年人免费观看| 大肉大捧一进一出好爽在线视频| 亚洲福利精品福利精品福利| 大胸性感美女羞爽操逼毛片| 欧美视频一区免费在线| 日韩av有码一区二区三区4| 欧美国品一二三产区区别| 五十路熟女av天堂| 天天射,天天操,天天说| 操操网操操伊剧情片中文字幕网| 中文字幕 人妻精品| 人妻少妇av在线观看| 99re国产在线精品| av大全在线播放免费| 天天日天天干天天要| 美女福利视频导航网站| 夜鲁夜鲁狠鲁天天在线| 日韩影片一区二区三区不卡免费 | huangse网站在线观看| 韩国爱爱视频中文字幕| 2019av在线视频| 啊啊好大好爽啊啊操我啊啊视频 | 2019av在线视频| 亚洲av一妻不如妾| 国产一区二区在线欧美| 制服丝袜在线人妻中文字幕| 国产亚州色婷婷久久99精品| 操操网操操伊剧情片中文字幕网| 日本成人一区二区不卡免费在线| 欲满人妻中文字幕在线| 天天插天天色天天日| 欧美乱妇无乱码一区二区| 天天艹天天干天天操| 激情五月婷婷综合色啪| 18禁美女羞羞免费网站| 不卡一不卡二不卡三| 在线不卡日韩视频播放| 超污视频在线观看污污污| 久久久精品国产亚洲AV一| 亚洲最大黄 嗯色 操 啊| 欧美在线一二三视频| 天天操天天爽天天干| 日本人妻少妇18—xx| 日本人妻少妇18—xx| 中文字幕在线观看极品视频| 在线免费91激情四射| 青青伊人一精品视频| 欧美另类重口味极品在线观看| 专门看国产熟妇的网站| 全国亚洲男人的天堂| 精品国产乱码一区二区三区乱| 天天干天天操天天摸天天射| 亚洲av可乐操首页| 夫妻在线观看视频91| 黄色成年网站午夜在线观看| 深田咏美亚洲一区二区| 99久久久无码国产精品性出奶水| av天堂资源最新版在线看| 97a片免费在线观看| 密臀av一区在线观看| 在线观看欧美黄片一区二区三区| 中文字幕视频一区二区在线观看| 青青青aaaa免费| 日本成人不卡一区二区| 日韩人妻在线视频免费| 欧美美女人体视频一区| 强行扒开双腿猛烈进入免费版| 免费手机黄页网址大全| 日韩美女精品视频在线观看网站| 九色porny九色9l自拍视频| 国产高清精品一区二区三区| 成人国产小视频在线观看| 福利片区一区二体验区| 国产va在线观看精品| 国产精品久久9999| 91免费观看国产免费| 国产精品人妻熟女毛片av久| 久久精品36亚洲精品束缚| 视频一区 视频二区 视频| 国产成人一区二区三区电影网站| 色婷婷六月亚洲综合香蕉| 99精品视频之69精品视频| 亚洲一区二区久久久人妻| 日本脱亚入欧是指什么| 综合一区二区三区蜜臀| 亚洲一区自拍高清免费视频| 蜜桃久久久久久久人妻| 91免费放福利在线观看| 免费人成黄页网站在线观看国产| 午夜国产免费福利av| 国产在线观看黄色视频| 日本在线不卡免费视频| 经典av尤物一区二区| 91精品国产91青青碰| 国产精品久久久久久久久福交| 五十路熟女av天堂| 大黑人性xxxxbbbb| 精品国产高潮中文字幕| 精品av国产一区二区三区四区 | 欧美天堂av无线av欧美| 超碰97人人澡人人| 2o22av在线视频| 亚洲国产在线精品国偷产拍| 91免费黄片可看视频| 888欧美视频在线| 精产国品久久一二三产区区别| 性欧美激情久久久久久久| 无码国产精品一区二区高潮久久4| 国产自拍黄片在线观看| 丝袜美腿欧美另类 中文字幕| 蜜桃久久久久久久人妻| 大鸡巴后入爆操大屁股美女| 91大神福利视频网| 91麻豆精品91久久久久同性 | 亚洲成人免费看电影| 亚洲福利精品视频在线免费观看| 夜夜骑夜夜操夜夜奸| 又大又湿又爽又紧A视频| 红杏久久av人妻一区| 国产一级精品综合av| avjpm亚洲伊人久久| 丝袜美腿欧美另类 中文字幕| 欧美中文字幕一区最新网址| 欧美日本在线视频一区| 精品国产在线手机在线| 亚洲最大黄了色网站| 一区二区三区 自拍偷拍| 欧洲亚洲欧美日韩综合| 精品区一区二区三区四区人妻| 岛国免费大片在线观看| 最新国产精品网址在线观看| 粗大的内捧猛烈进出爽大牛汉子| 日韩美在线观看视频黄| 好了av中文字幕在线| 91久久人澡人人添人人爽乱| 中文字幕高清在线免费播放| 日日夜夜精品一二三| 人妻无码色噜噜狠狠狠狠色| 色吉吉影音天天干天天操| 福利视频广场一区二区| 久草视频首页在线观看| 在线免费观看av日韩| 中字幕人妻熟女人妻a62v网| 综合精品久久久久97| 免费一级特黄特色大片在线观看| 青青草精品在线视频观看| 欧美专区第八页一区在线播放| 激情国产小视频在线| 一区二区在线视频中文字幕| 国产黄色大片在线免费播放| 欧美亚洲免费视频观看| 精品黑人一区二区三区久久国产 | 97欧洲一区二区精品免费| 9l人妻人人爽人人爽| 大胸性感美女羞爽操逼毛片| av一本二本在线观看| 亚洲欧美另类手机在线| av老司机精品在线观看| 偷拍自拍视频图片免费| 欧美成人黄片一区二区三区| 大陆精品一区二区三区久久| 免费黄页网站4188| 1区2区3区4区视频在线观看| 91免费福利网91麻豆国产精品| 一二三中文乱码亚洲乱码one| 在线不卡成人黄色精品| 午夜精品九一唐人麻豆嫩草成人| 春色激情网欧美成人| 丝袜美腿视频诱惑亚洲无| 青青青青青青青在线播放视频| 人妻少妇性色欲欧美日韩| 2022国产精品视频| 9国产精品久久久久老师| 亚洲激情唯美亚洲激情图片| 国产密臀av一区二区三| 欧美一区二区三区乱码在线播放| 青娱乐最新视频在线| 熟女91pooyn熟女| 在线观看国产网站资源| 亚洲图片偷拍自拍区| 亚洲美女高潮喷浆视频| 天天日天天玩天天摸| 午夜精品九一唐人麻豆嫩草成人| 99热色原网这里只有精品| 日本女人一级免费片| 亚洲老熟妇日本老妇| 久草福利电影在线观看| 国产精品国色综合久久| 国产精品3p和黑人大战| 国产一线二线三线的区别在哪| 成人亚洲精品国产精品| 清纯美女在线观看国产| 日本黄色三级高清视频| 午夜婷婷在线观看视频| 成年人午夜黄片视频资源| 国产又粗又硬又大视频| 福利片区一区二体验区| 欧美偷拍自拍色图片| 日韩欧美国产一区ab| 亚洲国产香蕉视频在线播放 | 干逼又爽又黄又免费的视频| 亚洲日本一区二区三区 | 久久久久国产成人精品亚洲午夜| 黄页网视频在线免费观看| 国际av大片在线免费观看| 天天日天天干天天搡| 亚洲成人激情av在线| 99精品视频之69精品视频| 欧美日韩情色在线观看| 国产日韩欧美视频在线导航| 久久精品国产亚洲精品166m| 护士特殊服务久久久久久久| 亚洲av黄色在线网站| 国产精品sm调教视频| 黄片大全在线观看观看| 久久久超爽一二三av| 黄色三级网站免费下载| 亚洲精品ww久久久久久| 欧美成人黄片一区二区三区| 一区二区三区四区五区性感视频 | 2022国产综合在线干| 99久久激情婷婷综合五月天| 国产福利在线视频一区| 久久农村老妇乱69系列| 只有精品亚洲视频在线观看| 人人妻人人爽人人澡人人精品| 天干天天天色天天日天天射| 精品美女在线观看视频在线观看| 97成人免费在线观看网站| 后入美女人妻高清在线| 国产一区二区欧美三区| 午夜国产福利在线观看| 九九热99视频在线观看97| 天天日天天干天天干天天日| 日本熟女50视频免费| 免费无毒热热热热热热久| 一区二区三区 自拍偷拍| 2022国产综合在线干| 国产大鸡巴大鸡巴操小骚逼小骚逼 | 欧美亚洲偷拍自拍色图| 护士特殊服务久久久久久久| 亚洲欧美久久久久久久久| 99婷婷在线观看视频| 男人天堂色男人av| 3337p日本欧洲大胆色噜噜| av中文字幕国产在线观看| 亚洲欧美久久久久久久久| 888欧美视频在线| 亚洲高清国产拍青青草原| 精品久久久久久久久久久久人妻| 精品国产亚洲av一淫| 欧美成人黄片一区二区三区| 精品一区二区三四区| 国产一区av澳门在线观看| 岛国青草视频在线观看| 日韩特级黄片高清在线看| 人妻无码中文字幕专区| 欧美亚洲国产成人免费在线| 日本一区精品视频在线观看| 中文字幕无码一区二区免费| 亚洲黄色av网站免费播放| 亚洲国产中文字幕啊啊啊不行了 | 99久久超碰人妻国产| 免费观看成年人视频在线观看| 美味人妻2在线播放| 懂色av蜜桃a v| 欧美亚洲中文字幕一区二区三区| 久久h视频在线观看| 亚洲欧美另类自拍偷拍色图| 日韩欧美国产精品91| 新婚人妻聚会被中出| xxx日本hd高清| 啊啊好大好爽啊啊操我啊啊视频 | 亚洲最大黄了色网站| 午夜精品一区二区三区4| 黄页网视频在线免费观看| 日韩在线中文字幕色| 国产内射中出在线观看| 不卡一区一区三区在线| heyzo蜜桃熟女人妻| 特大黑人巨大xxxx| 国产免费av一区二区凹凸四季| 狍和女人的王色毛片| 欧美日韩v中文在线| 亚洲av无硬久久精品蜜桃| 黄色视频在线观看高清无码| 91免费观看在线网站| 人妻无码中文字幕专区| 噜噜色噜噜噜久色超碰| 免费高清自慰一区二区三区网站 | 2017亚洲男人天堂| 99视频精品全部15| 日本高清在线不卡一区二区| 天天射夜夜操综合网| 亚洲精品精品国产综合| 久久精品国产999| 全国亚洲男人的天堂| 99热这里只有精品中文| 青青草亚洲国产精品视频| 亚洲第一黄色在线观看| 女同性ⅹxx女同h偷拍| 黑人巨大的吊bdsm| jiujiure精品视频在线| 2019av在线视频| 国产第一美女一区二区三区四区| 最新91精品视频在线| 国产亚州色婷婷久久99精品| 久久国产精品精品美女| 成人久久精品一区二区三区| 人妻av无码专区久久绿巨人| 中文字幕日韩无敌亚洲精品| 综合页自拍视频在线播放| 欧美久久一区二区伊人| ka0ri在线视频| 国产视频在线视频播放| 青青草视频手机免费在线观看| 亚洲一区久久免费视频| 传媒在线播放国产精品一区| 欧美viboss性丰满| 天天操,天天干,天天射| 91九色国产porny蝌蚪| 最近中文字幕国产在线| 亚洲精品成人网久久久久久小说| 午夜dv内射一区区| 欧美激情精品在线观看| 福利午夜视频在线观看| xxx日本hd高清| 超污视频在线观看污污污| 麻豆性色视频在线观看| 亚洲精品高清自拍av| 91精品资源免费观看| 91片黄在线观看喷潮| 极品粉嫩小泬白浆20p主播| 久久艹在线观看视频| 日韩美女搞黄视频免费| 日本性感美女视频网站| 精品黑人巨大在线一区| 中文人妻AV久久人妻水| 性感美女高潮视频久久久| 一区二区三区国产精选在线播放| 亚洲欧美国产综合777| 一区二区三区欧美日韩高清播放| 摧残蹂躏av一二三区| 亚洲女人的天堂av| 精品美女久久久久久| 一区二区三区综合视频| 人人爽亚洲av人人爽av| 天码人妻一区二区三区在线看| 亚洲成人午夜电影在线观看| 亚洲av日韩高清hd| 无忧传媒在线观看视频| 亚洲午夜电影在线观看| 亚洲公开视频在线观看| 精品人妻伦一二三区久| 超碰公开大香蕉97| 女蜜桃臀紧身瑜伽裤| 亚洲国产成人在线一区| 少妇高潮一区二区三区| 亚洲 中文 自拍 另类 欧美| 国产妇女自拍区在线观看| 新97超碰在线观看| 少妇人妻久久久久视频黄片| 精品亚洲中文字幕av| 懂色av之国产精品| 亚洲va天堂va国产va久| 九色porny九色9l自拍视频| 超黄超污网站在线观看| 日韩无码国产精品强奸乱伦| 国产精品人久久久久久| 超级av免费观看一区二区三区| 亚洲精品在线资源站| 亚洲精品午夜aaa久久| 人妻自拍视频中国大陆| 男人的网址你懂的亚洲欧洲av| 91亚洲精品干熟女蜜桃频道| 蜜桃视频17c在线一区二区| 欧美视频中文一区二区三区| 亚洲成人av一区在线| 狠狠的往里顶撞h百合| 中文字幕国产专区欧美激情| 日本丰满熟妇BBXBBXHD| brazzers欧熟精品系列| 成人免费公开视频无毒| 偷拍自拍亚洲视频在线观看| 夜夜嗨av一区二区三区中文字幕| 国产欧美日韩第三页| 一区二区三区日本伦理| 九一传媒制片厂视频在线免费观看| 亚洲精品福利网站图片| 国产真实乱子伦a视频| 99热久久这里只有精品| 天堂资源网av中文字幕| 麻豆精品成人免费视频| 四川五十路熟女av| 特大黑人巨大xxxx| 白白操白白色在线免费视频| 国产一区二区在线欧美| 欧美伊人久久大香线蕉综合| 三级av中文字幕在线观看| 午夜av一区二区三区| 天天做天天爽夜夜做少妇| 视频 国产 精品 熟女 | 欧亚日韩一区二区三区观看视频| 插逼视频双插洞国产操逼插洞| 三级av中文字幕在线观看| 1区2区3区不卡视频| 日韩一区二区三区三州| 三级等保密码要求条款| 日韩美女综合中文字幕pp| 亚洲欧美综合在线探花| 成人区人妻精品一区二视频| 欧美一区二区三区在线资源| 午夜精品福利一区二区三区p | 夜夜操,天天操,狠狠操| avjpm亚洲伊人久久| 男女啪啪视频免费在线观看| 3D动漫精品啪啪一区二区下载| 中国视频一区二区三区| 粉嫩av懂色av蜜臀av| 丰满少妇人妻xxxxx| 国产剧情演绎系列丝袜高跟| 日韩成人综艺在线播放| 青青草亚洲国产精品视频| 一级黄片久久久久久久久| 区一区二区三国产中文字幕| 国产极品精品免费视频| 麻豆性色视频在线观看| 色哟哟在线网站入口| 免费啪啪啪在线观看视频| av中文字幕网址在线| 欧美一区二区三区乱码在线播放| 亚洲天堂有码中文字幕视频| 亚洲精品乱码久久久久久密桃明| 偷拍自拍亚洲美腿丝袜| 国产91久久精品一区二区字幕| 天天日天天爽天天爽| 性色av一区二区三区久久久| 成人30分钟免费视频| 色噜噜噜噜18禁止观看| 久久人人做人人妻人人玩精品vr | 2021久久免费视频| 大鸡巴插入美女黑黑的阴毛| 日本精品视频不卡一二三| 日韩人妻xxxxx| 天天射,天天操,天天说| 色婷婷六月亚洲综合香蕉| 中文字幕之无码色多多| 男人天堂av天天操| 亚洲欧美自拍另类图片| 精品一线二线三线日本| 男人的天堂av日韩亚洲| 成人资源在线观看免费官网| 亚洲另类在线免费观看| 人妻久久无码中文成人| 亚洲熟妇x久久av久久| 日韩av有码一区二区三区4| av破解版在线观看| 免费观看理论片完整版| 丰满熟女午夜福利视频| 欧美一区二区中文字幕电影 | 一区二区视频视频视频| 大香蕉玖玖一区2区| 爆乳骚货内射骚货内射在线 | 亚洲av无乱一区二区三区性色| 久久久久只精品国产三级| 国产综合视频在线看片| 亚洲欧美国产综合777| mm131美女午夜爽爽爽| 91快播视频在线观看| 国产97视频在线精品| 五十路av熟女松本翔子| 蜜桃精品久久久一区二区| 北条麻妃av在线免费观看| 午夜精品福利一区二区三区p| 热99re69精品8在线播放| 黄页网视频在线免费观看| 女人精品内射国产99| 婷婷久久久综合中文字幕| 少妇露脸深喉口爆吞精| 亚洲av男人的天堂你懂的| 亚洲欧美成人综合视频| 日本又色又爽又黄又粗| 日本性感美女视频网站| 91九色porny国产蝌蚪视频| 日本免费视频午夜福利视频| 亚洲一区二区三区av网站| 日韩精品电影亚洲一区| 绝顶痉挛大潮喷高潮无码 | 亚洲女人的天堂av| 中文字幕一区二区亚洲一区| 一区二区视频在线观看免费观看| 亚洲另类综合一区小说| 91精品高清一区二区三区| 欧美亚洲少妇福利视频| 天天干天天操天天爽天天摸 | 成人sm视频在线观看| 成人福利视频免费在线| 亚洲 清纯 国产com| 啊慢点鸡巴太大了啊舒服视频| 欧美特色aaa大片| 国产精品黄片免费在线观看| 深田咏美亚洲一区二区| 少妇露脸深喉口爆吞精| 91精品综合久久久久3d动漫| 狠狠操狠狠操免费视频| 亚洲熟色妇av日韩熟色妇在线| 欧美日本在线视频一区| 伊人成人综合开心网| 天天操夜夜操天天操天天操 | 最新激情中文字幕视频| 日韩成人性色生活片| 91九色porny国产在线| 91人妻精品久久久久久久网站| 神马午夜在线观看视频| 自拍偷拍 国产资源| 日比视频老公慢点好舒服啊| 日韩三级电影华丽的外出 | 中文字幕综合一区二区| 国产一区二区久久久裸臀| 亚洲另类在线免费观看| 成人av天堂丝袜在线观看| 天天射,天天操,天天说| 国产日本精品久久久久久久| 操的小逼流水的文章| 中文字幕无码一区二区免费| 男人的天堂av日韩亚洲| 综合精品久久久久97| 97香蕉碰碰人妻国产樱花| 欧美日韩熟女一区二区三区| 97国产福利小视频合集| 亚洲粉嫩av一区二区三区| 亚洲高清视频在线不卡| 日韩一个色综合导航| 日本韩国在线观看一区二区| 色秀欧美视频第一页| 亚洲av自拍偷拍综合| 国产高潮无码喷水AV片在线观看| 成人网18免费视频版国产| 99热国产精品666| 亚洲免费国产在线日韩| 成人综合亚洲欧美一区| 狠狠操操操操操操操操操| 91精品啪在线免费| av新中文天堂在线网址| 天天操天天操天天碰| 伊人精品福利综合导航| 免费观看污视频网站| 欧美日韩精品永久免费网址| 一区二区三区久久久91| 日韩写真福利视频在线观看| 9国产精品久久久久老师| 偷拍自拍 中文字幕| 国产露脸对白在线观看| 5528327男人天堂| 中文人妻AV久久人妻水| 制丝袜业一区二区三区| 亚洲国产美女一区二区三区软件 | 99亚洲美女一区二区三区| 国产亚洲欧美视频网站| 亚洲免费国产在线日韩| 亚洲无码一区在线影院| 美洲精品一二三产区区别| 亚洲少妇人妻无码精品| 亚洲精品久久综合久| 国产不卡av在线免费| 日本在线一区二区不卡视频| 5528327男人天堂| 38av一区二区三区| 97国产在线av精品| 日韩精品电影亚洲一区| 99热碰碰热精品a中文| 亚洲日本一区二区三区 | 欧美日韩亚洲国产无线码| 岛国黄色大片在线观看| 欧美一区二区三区乱码在线播放 | aⅴ精产国品一二三产品| 777奇米久久精品一区| 超碰中文字幕免费观看| 国产精品久久久久久美女校花| 在线免费91激情四射| 中文字幕日韩精品日本| 国产男女视频在线播放| 韩国一级特黄大片做受| 扒开腿挺进肉嫩小18禁视频| 日韩a级精品一区二区| 国产普通话插插视频| 92福利视频午夜1000看| 青青青青青青青在线播放视频| 美日韩在线视频免费看| 亚洲一区二区久久久人妻| 激情五月婷婷综合色啪| xxx日本hd高清| 青青草人人妻人人妻| av天堂加勒比在线| 人妻在线精品录音叫床| 二区中出在线观看老师| 婷婷久久久久深爱网| 国产精品福利小视频a| 日本少妇人妻xxxxxhd| 98视频精品在线观看| 中文字幕一区二区人妻电影冢本| 欧美专区日韩专区国产专区| 伊人成人在线综合网| 最新97国产在线视频| 福利视频广场一区二区| 日本最新一二三区不卡在线 | 中文字幕免费福利视频6| 天天干天天日天天谢综合156| 亚洲日本一区二区三区| 在线免费观看亚洲精品电影| 人妻另类专区欧美制服| 在线播放一区二区三区Av无码| 日本成人一区二区不卡免费在线| av手机免费在线观看高潮| 国产真实灌醉下药美女av福利| 青青草视频手机免费在线观看| 亚洲超碰97人人做人人爱| 国产精品国产三级麻豆| 清纯美女在线观看国产| 美女日逼视频免费观看| 视频一区二区综合精品| 人人妻人人澡人人爽人人dvl| 天天做天天干天天舔| 91亚洲国产成人精品性色| 久久这里只有精品热视频| 国产日韩av一区二区在线| 97人人模人人爽人人喊| 日韩成人综艺在线播放| 播放日本一区二区三区电影| 欧美色呦呦最新网址| 中文字幕欧美日韩射射一| 在线 中文字幕 一区| 亚洲午夜高清在线观看| 91大神福利视频网| 国产欧美日韩在线观看不卡| 欧美视频中文一区二区三区| 一区二区熟女人妻视频| 精品黑人巨大在线一区| 国产精品熟女久久久久浪潮| 色偷偷伊人大杳蕉综合网| 国产揄拍高清国内精品对白 | 日本午夜福利免费视频| 午夜场射精嗯嗯啊啊视频| 可以免费看的www视频你懂的| 午夜在线观看一区视频| 日日摸夜夜添夜夜添毛片性色av| 亚洲中文字幕国产日韩| 日本一区美女福利视频| 亚洲中文字幕乱码区| 少妇露脸深喉口爆吞精| 亚洲国产成人最新资源| 天天干天天搞天天摸| 国产在线一区二区三区麻酥酥| 中文字幕 人妻精品| 亚洲国产欧美一区二区三区久久| 成人激情文学网人妻| 青青青青青青青青青青草青青| 国产成人精品午夜福利训2021| 成人av电影免费版| 亚洲av午夜免费观看| 天天干天天啪天天舔| 黄色资源视频网站日韩| 免费无毒热热热热热热久| 美女张开腿让男生操在线看| 午夜精品在线视频一区| 国产高清在线在线视频| 日韩欧美一级aa大片| 护士小嫩嫩又紧又爽20p| 视频一区二区在线免费播放| 巨乳人妻日下部加奈被邻居中出| 巨乳人妻日下部加奈被邻居中出| 久精品人妻一区二区三区 | av完全免费在线观看av| 爆乳骚货内射骚货内射在线| 欧美亚洲一二三区蜜臀| 午夜毛片不卡免费观看视频| 99热国产精品666| 人人爽亚洲av人人爽av| 99久久久无码国产精品性出奶水| 97超碰国语国产97超碰| 国产精品自拍视频大全| 国产亚洲精品视频合集| 天天日天天干天天要| 少妇露脸深喉口爆吞精| 超鹏97历史在线观看| 小穴多水久久精品免费看| 蜜桃视频17c在线一区二区| 免费大片在线观看视频网站| huangse网站在线观看| 亚洲人妻国产精品综合| 久久久久久久久久一区二区三区| 青青青青爽手机在线| 五月精品丁香久久久久福利社| 人妻最新视频在线免费观看| 天天射,天天操,天天说| 青草久久视频在线观看| 久久久久久久精品老熟妇| 大肉大捧一进一出好爽在线视频| 国产老熟女伦老熟妇ⅹ| 中文字幕人妻三级在线观看| 欧美专区日韩专区国产专区| 97欧洲一区二区精品免费| 欧美黄色录像免费看的| 美女视频福利免费看| 日韩av中文在线免费观看| 亚洲福利精品福利精品福利| 成年人午夜黄片视频资源| 日本人妻欲求不满中文字幕| 国产av国片精品一区二区| 亚洲狠狠婷婷综合久久app| 国产午夜亚洲精品麻豆| 深夜男人福利在线观看| 偷拍自拍亚洲美腿丝袜| 色婷婷精品大在线观看| 亚洲av男人天堂久久| 大学生A级毛片免费视频| 日韩精品激情在线观看| 水蜜桃一区二区三区在线观看视频 | 日韩中文字幕在线播放第二页| 精品黑人一区二区三区久久国产 | 亚洲无码一区在线影院| 激情人妻校园春色亚洲欧美| 韩国爱爱视频中文字幕| 久草视频中文字幕在线观看| 激情图片日韩欧美人妻| 小穴多水久久精品免费看| 青青草精品在线视频观看| 亚洲综合在线观看免费| 国产又粗又猛又爽又黄的视频美国| 中文字幕无码一区二区免费| 欧美精品黑人性xxxx| 日韩精品二区一区久久| av线天堂在线观看| 大陆av手机在线观看| 日韩av有码中文字幕| 自拍偷拍日韩欧美一区二区| 极品性荡少妇一区二区色欲| 日韩欧美一级aa大片| 中国产一级黄片免费视频播放| 偷拍自拍亚洲美腿丝袜| 免费无码人妻日韩精品一区二区| 国产成人自拍视频在线免费观看 | 免费看国产又粗又猛又爽又黄视频| 男女啪啪啪啪啪的网站| 韩国一级特黄大片做受| 日韩精品中文字幕福利| 又色又爽又黄的美女裸体| 久久精品国产亚洲精品166m| 亚洲中文字字幕乱码| 大尺度激情四射网站| 大香蕉日本伊人中文在线| 亚洲欧美另类自拍偷拍色图| 99精品视频在线观看婷婷| 一区二区三区 自拍偷拍| 国产又粗又硬又猛的毛片视频| 中文 成人 在线 视频| 丝袜国产专区在线观看| 久久久久久性虐视频| 激情伦理欧美日韩中文字幕| 天堂中文字幕翔田av| 91国内精品久久久久精品一| 亚洲va天堂va国产va久| 在线视频自拍第三页| 日曰摸日日碰夜夜爽歪歪| 色伦色伦777国产精品| 日本裸体熟妇区二区欧美| 91社福利《在线观看| 国产 在线 免费 精品| 好吊操视频这里只有精品| av中文字幕电影在线看| 天天日天天爽天天干| 男大肉棒猛烈插女免费视频| 亚洲va国产va欧美精品88| 成人久久精品一区二区三区| 青青青青青青草国产| weyvv5国产成人精品的视频| 亚洲中文字幕乱码区| 人妻少妇av在线观看| 99精品国自产在线人| 天天日天天干天天插舔舔| 国产亚洲精品品视频在线| 在线可以看的视频你懂的| 国产在线一区二区三区麻酥酥| okirakuhuhu在线观看| rct470中文字幕在线| 国产精品国色综合久久| 亚洲一区二区三区久久受| 亚洲va国产va欧美精品88| av在线观看网址av| 97人妻无码AV碰碰视频| tube69日本少妇| 国产在线自在拍91国语自产精品| 婷婷综合蜜桃av在线| 午夜激情久久不卡一区二区| 91久久综合男人天堂| 91精品激情五月婷婷在线| 国产又粗又硬又猛的毛片视频| 亚欧在线视频你懂的| 天天想要天天操天天干| 午夜精品九一唐人麻豆嫩草成人| 人妻丝袜av在线播放网址| av中文字幕国产在线观看| 日韩特级黄片高清在线看| 白嫩白嫩美女极品国产在线观看| 适合午夜一个人看的视频| 岳太深了紧紧的中文字幕| 乱亲女秽乱长久久久| av老司机亚洲一区二区| 国产精品自拍偷拍a| 老司机免费视频网站在线看| 99精品免费观看视频| 婷婷激情四射在线观看视频| 性感美女福利视频网站| 999热精品视频在线| 免费69视频在线看| 中文字幕第三十八页久久 | 老鸭窝日韩精品视频观看| 传媒在线播放国产精品一区| 国产大鸡巴大鸡巴操小骚逼小骚逼| 中文字日产幕乱六区蜜桃| 福利午夜视频在线观看| 中文字幕人妻三级在线观看| 亚洲欧美另类手机在线| 社区自拍揄拍尻屁你懂的| 91亚洲手机在线视频播放| 天天日天天玩天天摸| 国产91嫩草久久成人在线视频| 特黄老太婆aa毛毛片| 人妻少妇亚洲一区二区| 在线可以看的视频你懂的| 都市家庭人妻激情自拍视频| 中文字幕一区二区人妻电影冢本| 国产精品成久久久久三级蜜臀av| 蜜桃视频入口久久久| 搡老妇人老女人老熟女| 国产精品黄页网站视频| 在线视频这里只有精品自拍| 区一区二区三国产中文字幕| 一区二区三区四区中文| 欧美一级色视频美日韩| 国产aⅴ一线在线观看| 美味人妻2在线播放| 40道精品招牌菜特色| 亚洲综合色在线免费观看| 最新日韩av传媒在线| 欧美成人精品在线观看| 日本少妇高清视频xxxxx | 精品黑人一区二区三区久久国产| 精品日产卡一卡二卡国色天香 | 啪啪啪啪啪啪啪免费视频| 亚洲男人的天堂a在线| 93视频一区二区三区| 熟女91pooyn熟女| 一区二区三区久久中文字幕| 亚洲精品中文字幕下载| 特一级特级黄色网片| 开心 色 六月 婷婷| 亚洲视频在线观看高清| 欧美爆乳肉感大码在线观看| 免费在线播放a级片| 婷婷六月天中文字幕| 蜜臀av久久久久久久| 99精品免费久久久久久久久a| 玖玖一区二区在线观看| 天堂女人av一区二区| 久久精品36亚洲精品束缚| 一区二区视频在线观看视频在线| 亚洲一区制服丝袜美腿| 亚国产成人精品久久久| 久久久精品国产亚洲AV一| 2020韩国午夜女主播在线| 国产极品精品免费视频| 亚洲午夜伦理视频在线| 91试看福利一分钟| 玖玖一区二区在线观看| 欧美日韩激情啪啪啪| 偷拍自拍亚洲视频在线观看| 黑人解禁人妻叶爱071| 操操网操操伊剧情片中文字幕网| 亚洲区欧美区另类最新章节| 成年美女黄网站18禁久久| 97精品成人一区二区三区 | 91国内精品久久久久精品一| 一区二区麻豆传媒黄片 | okirakuhuhu在线观看| 中文字幕av熟女人妻| 99热碰碰热精品a中文| aiss午夜免费视频| 2012中文字幕在线高清| 天天射夜夜操狠狠干| 国产精品久久综合久久| 超碰中文字幕免费观看| 欧美另类重口味极品在线观看| 91九色porny国产在线| 熟女91pooyn熟女| 欧美日本aⅴ免费视频| 在线国产中文字幕视频| 欧美爆乳肉感大码在线观看| 国产在线一区二区三区麻酥酥| 久久久久久久一区二区三| 亚洲丝袜老师诱惑在线观看| 11久久久久久久久久久| 操日韩美女视频在线免费看| 天天日天天添天天爽| 免费啪啪啪在线观看视频| 男女啪啪啪啪啪的网站| 天天日天天敢天天干| 亚洲熟妇x久久av久久| 国产欧美精品不卡在线| 在线免费视频 自拍| 国产九色91在线观看精品| av中文字幕在线导航| 啪啪啪操人视频在线播放| 中国把吊插入阴蒂的视频| 在线观看av观看av| 亚洲中文精品人人免费| 偷偷玩弄新婚人妻h视频| huangse网站在线观看| 一区二区免费高清黄色视频| 国内自拍第一页在线观看| 久久久久久久久久一区二区三区| av手机在线免费观看日韩av| 黑人乱偷人妻中文字幕| 在线免费观看视频一二区| 成人av电影免费版| 100%美女蜜桃视频| 91免费放福利在线观看| 亚洲av无硬久久精品蜜桃| 欧美日韩亚洲国产无线码| 超pen在线观看视频公开97| 天天操天天干天天日狠狠插| 国产成人综合一区2区| 偷拍自拍 中文字幕| 日本精品视频不卡一二三| 同居了嫂子在线播高清中文| 欧美日韩情色在线观看| 亚洲自拍偷拍精品网| 夜色福利视频在线观看| 熟妇一区二区三区高清版| 最新国产精品网址在线观看| 久草视频中文字幕在线观看| 免费费一级特黄真人片| 美女福利视频网址导航| 五十路在线观看完整版| 亚洲成高清a人片在线观看| 无码中文字幕波多野不卡| 伊人情人综合成人久久网小说| 精品黑人巨大在线一区| 日日夜夜狠狠干视频| 一区二区麻豆传媒黄片| 中文字幕av男人天堂| 一个色综合男人天堂| 国产一区二区久久久裸臀| 天堂av狠狠操蜜桃| 水蜜桃国产一区二区三区| 自拍偷拍日韩欧美亚洲| 欧美在线精品一区二区三区视频 | 老有所依在线观看完整版| 蜜桃精品久久久一区二区| 国产在线拍揄自揄视频网站| 女同性ⅹxx女同hd| 亚洲国产欧美一区二区丝袜黑人| 中文字幕高清在线免费播放| 黄色av网站免费在线| 亚洲国产精品中文字幕网站| 3344免费偷拍视频| 自拍偷拍日韩欧美一区二区| 顶级尤物粉嫩小尤物网站| 天堂v男人视频在线观看| 9国产精品久久久久老师| 亚洲高清国产自产av| 欧洲精品第一页欧洲精品亚洲 | 亚洲成人熟妇一区二区三区| 青青草成人福利电影| weyvv5国产成人精品的视频| 亚洲国产精品美女在线观看| av在线免费观看亚洲天堂| 精品91高清在线观看| 欧美久久久久久三级网| 欧美一级色视频美日韩| 青青操免费日综合视频观看| 成人高潮aa毛片免费| 中国熟女@视频91| 国产妇女自拍区在线观看| av天堂加勒比在线| 精品av国产一区二区三区四区 | 成人av久久精品一区二区| 精品久久久久久久久久中文蒉 | 日韩欧美高清免费在线| 99精品国自产在线人| 91国语爽死我了不卡| 激情五月婷婷免费视频| 日本美女性生活一级片| 中文字幕熟女人妻久久久| 亚洲精品色在线观看视频| 亚洲av琪琪男人的天堂| 国产精品日韩欧美一区二区| 国产午夜无码福利在线看| 日韩av大胆在线观看| 99精品一区二区三区的区| 91传媒一区二区三区| 动漫av网站18禁| 中文字幕在线永久免费播放| 激情内射在线免费观看| 国产超码片内射在线| 三级等保密码要求条款| 人妻在线精品录音叫床| 亚洲 图片 欧美 图片| 日本少妇人妻xxxxxhd| 爱爱免费在线观看视频| 中文字幕 人妻精品| 男人天堂色男人av| 色综合色综合色综合色| 日韩亚洲高清在线观看| 夜色撩人久久7777| 91麻豆精品久久久久| 中文字幕熟女人妻久久久| 青青草亚洲国产精品视频| 青青尤物在线观看视频网站| 日韩激情文学在线视频| 久久久久只精品国产三级| 在线播放 日韩 av| 日本一二三中文字幕| 欧美久久久久久三级网| 欧美精品中文字幕久久二区| 日韩av熟妇在线观看| jiuse91九色视频| 2020久久躁狠狠躁夜夜躁 | 天天射夜夜操综合网| 国产午夜男女爽爽爽爽爽视频| 亚洲一区二区三区av网站| 久久综合老鸭窝色综合久久| 国产黑丝高跟鞋视频在线播放| 亚洲成人情色电影在线观看| 一区二区三区 自拍偷拍| 大鸡吧插入女阴道黄色片| 亚洲午夜电影在线观看| 天天操天天干天天日狠狠插| 涩爱综合久久五月蜜臀| 国产成人精品亚洲男人的天堂| 又黄又刺激的午夜小视频| 视频一区二区综合精品| 亚洲欧美一区二区三区爱爱动图| av一区二区三区人妻| 午夜久久久久久久99| 高潮喷水在线视频观看| 高潮视频在线快速观看国家快速| 天天干天天搞天天摸| 亚洲高清国产拍青青草原| 日本熟妇一区二区x x| 国产精品人妻熟女毛片av久| 国产91久久精品一区二区字幕| 40道精品招牌菜特色| 国产女孩喷水在线观看| 久久久久久久99精品| 亚洲熟妇无码一区二区三区| 黑人性生活视频免费看| 国产一区二区久久久裸臀| 好了av中文字幕在线| 色噜噜噜噜18禁止观看| 国产激情av网站在线观看| av在线播放国产不卡| 视频在线免费观看你懂得| 精品欧美一区二区vr在线观看 | 亚洲欧美一卡二卡三卡| 国产97视频在线精品| 蜜桃精品久久久一区二区| 夜夜躁狠狠躁日日躁麻豆内射 | 1024久久国产精品| 超级碰碰在线视频免费观看| 欧洲国产成人精品91铁牛tv| 免费看高清av的网站| 日韩在线中文字幕色| 在线播放 日韩 av| 国产在线一区二区三区麻酥酥| 成年午夜影片国产片| 高清一区二区欧美系列| 东京热男人的av天堂| 操日韩美女视频在线免费看| 国产a级毛久久久久精品| 97香蕉碰碰人妻国产樱花| 含骚鸡巴玩逼逼视频| 成人亚洲国产综合精品| 激情色图一区二区三区| av在线播放国产不卡| 综合激情网激情五月五月婷婷| 在线不卡日韩视频播放| 亚洲Av无码国产综合色区| 女生自摸在线观看一区二区三区 | 亚洲精品在线资源站| 日本成人一区二区不卡免费在线| 免费av岛国天堂网站| 国产麻豆乱子伦午夜视频观看| 亚洲精品国产在线电影| 超级av免费观看一区二区三区| 国产成人自拍视频在线免费观看| 护士特殊服务久久久久久久| 国内精品在线播放第一页| 在线观看欧美黄片一区二区三区| 亚洲高清国产一区二区三区| 亚洲变态另类色图天堂网| av手机在线观播放网站| 青青青青爽手机在线| 国产一区二区久久久裸臀| jiujiure精品视频在线| 国产午夜无码福利在线看| 国产日韩精品免费在线| 亚洲精品国产综合久久久久久久久| 97年大学生大白天操逼| 中文字幕日本人妻中出| 蜜桃色婷婷久久久福利在线| 午夜精品在线视频一区| 亚洲精品国产久久久久久| 日本又色又爽又黄又粗| 视频 国产 精品 熟女 | 特一级特级黄色网片| 中文字幕综合一区二区| 国产在线观看免费人成短视频| 中文字幕在线观看国产片| 伊人综合aⅴ在线网| 日韩av中文在线免费观看| 91人妻精品久久久久久久网站| 久久国产精品精品美女| 狠狠躁狠狠爱网站视频| 92福利视频午夜1000看| 天天日天天透天天操| 午夜福利人人妻人人澡人人爽| 国产黄色高清资源在线免费观看| 亚洲丝袜老师诱惑在线观看| 自拍偷拍日韩欧美亚洲| 亚洲区欧美区另类最新章节| 扒开腿挺进肉嫩小18禁视频| 青青青艹视频在线观看| 欧美国品一二三产区区别| 亚洲av自拍偷拍综合| 熟女人妻在线中出观看完整版| 亚洲一区二区三区偷拍女厕91| 操的小逼流水的文章| 久青青草视频手机在线免费观看| 最新日韩av传媒在线| 亚洲色偷偷综合亚洲AV伊人| 国产亚洲成人免费在线观看 | 欧美色呦呦最新网址| 亚洲成人三级在线播放| 欧美亚洲偷拍自拍色图| 日本熟妇喷水xxx| 国产精品大陆在线2019不卡| 欧美日韩一区二区电影在线观看| 91老熟女连续高潮对白| 欧美亚洲一二三区蜜臀| 激情五月婷婷免费视频| 国产激情av网站在线观看| 黑人变态深video特大巨大| 欧美日韩国产一区二区三区三州| 亚洲一区二区三区uij| 在线网站你懂得老司机| 视频一区 二区 三区 综合| 男人操女人的逼免费视频| 老司机你懂得福利视频| 中文字幕高清资源站| 亚洲推理片免费看网站| 午夜极品美女福利视频| 亚洲 中文 自拍 另类 欧美| 国产精品一二三不卡带免费视频| 亚洲熟妇久久无码精品| 亚洲欧美清纯唯美另类| 女蜜桃臀紧身瑜伽裤| 都市激情校园春色狠狠| 青青色国产视频在线| 黄色视频成年人免费观看| 男女啪啪视频免费在线观看 | 人妻另类专区欧美制服| 亚洲激情偷拍一区二区| 国产精品人妻66p| 亚洲熟女久久久36d| 国产免费av一区二区凹凸四季| 日本欧美视频在线观看三区| 国产在线自在拍91国语自产精品 | 国产精品久久综合久久| 欧美亚洲自偷自拍 在线| 18禁无翼鸟成人在线| 日本丰满熟妇大屁股久久| 青青青国产片免费观看视频| v888av在线观看视频| free性日本少妇| 最新91精品视频在线| 久久综合老鸭窝色综合久久| 国产麻豆精品人妻av| 三级黄色亚洲成人av| 91中文字幕免费在线观看| 伊人情人综合成人久久网小说| 91九色国产porny蝌蚪| 亚洲成人国产综合一区| 欧美一区二区中文字幕电影| 国产乱子伦精品视频潮优女| 青青青青青操视频在线观看| 大胸性感美女羞爽操逼毛片| 国产片免费观看在线观看| 天天摸天天亲天天舔天天操天天爽| 又色又爽又黄的美女裸体| 中文字幕在线永久免费播放| 中国无遮挡白丝袜二区精品| 午夜精品久久久久久99热| 欧洲日韩亚洲一区二区三区 | 免费男阳茎伸入女阳道视频| 18禁美女黄网站色大片下载| 把腿张开让我插进去视频| 黄色成人在线中文字幕| 老司机福利精品视频在线| 天堂女人av一区二区| 视频一区二区三区高清在线| 国产精品一二三不卡带免费视频| 亚洲成人黄色一区二区三区 | 中文字幕在线免费第一页| 绝色少妇高潮3在线观看| 国产午夜男女爽爽爽爽爽视频| 视频在线亚洲一区二区| 2021国产一区二区| 国产精品视频男人的天堂| 动漫美女的小穴视频| 中文字幕+中文字幕| 国产91嫩草久久成人在线视频| 日本av在线一区二区三区| 天堂av狠狠操蜜桃| 久久香蕉国产免费天天| 男人和女人激情视频| 中文字幕日韩无敌亚洲精品| 99re6热在线精品| 青青擦在线视频国产在线| 亚洲av天堂在线播放| 黄色成年网站午夜在线观看| 国产性色生活片毛片春晓精品 | 亚洲av琪琪男人的天堂| 91超碰青青中文字幕| 美女日逼视频免费观看| 91精品国产91青青碰| 国产午夜男女爽爽爽爽爽视频| 午夜国产福利在线观看| 亚洲av在线观看尤物| 亚洲一区久久免费视频| 91极品新人『兔兔』精品新作| 18禁无翼鸟成人在线| 91综合久久亚洲综合| 五十路熟女人妻一区二| 亚洲老熟妇日本老妇| 中文字幕 码 在线视频| 在线观看av2025| 免费在线福利小视频| 精品亚洲国产中文自在线| 久久久精品国产亚洲AV一| 美女吃鸡巴操逼高潮视频| 青娱乐最新视频在线| 91免费放福利在线观看| 精品久久久久久久久久久99| 蜜桃色婷婷久久久福利在线 | 国产精品视频欧美一区二区 | 亚洲一级 片内射视正片| 老熟妇xxxhd老熟女| 中文字幕AV在线免费看 | 国产黄网站在线观看播放| 欧洲日韩亚洲一区二区三区| 午夜福利资源综合激情午夜福利资| 天天干天天操天天扣| AV无码一区二区三区不卡| 国产高清97在线观看视频| 在线播放国产黄色av| 亚洲av可乐操首页| 青娱乐极品视频青青草| 国产精品视频资源在线播放 | av破解版在线观看| 99热99这里精品6国产| 91av精品视频在线| 视频 国产 精品 熟女 | 一本一本久久a久久精品综合不卡| 中文字幕在线乱码一区二区| 91小伙伴中女熟女高潮| 欧美爆乳肉感大码在线观看| 日本一二三区不卡无| 亚洲中文字幕人妻一区| 大陆胖女人与丈夫操b国语高清| 亚洲午夜高清在线观看| 人人妻人人爽人人澡人人精品| 精品一区二区三区欧美| 久久这里有免费精品| 无码国产精品一区二区高潮久久4| 中文字幕日韩精品就在这里| 国产成人精品久久二区91| 中国熟女@视频91| 偷拍自拍亚洲视频在线观看| 欧美精品 日韩国产| 黄色在线观看免费观看在线| 日韩美女精品视频在线观看网站| 国产精品国产三级国产午| 国产精选一区在线播放| 精品国产乱码一区二区三区乱| 97国产福利小视频合集| 日本一本午夜在线播放| 欧美视频不卡一区四区| 五十路人妻熟女av一区二区| 亚洲激情,偷拍视频| 黑人3p华裔熟女普通话| 精品视频中文字幕在线播放| 亚洲一区二区三区偷拍女厕91| 91福利在线视频免费观看| 初美沙希中文字幕在线| 中文字幕第三十八页久久| 人妻少妇中文有码精品| 免费男阳茎伸入女阳道视频 | 久久久久只精品国产三级| 久草视频首页在线观看| 国产黑丝高跟鞋视频在线播放| 欧美亚洲一二三区蜜臀| 任你操视频免费在线观看| 香蕉片在线观看av| 五十路息与子猛烈交尾视频| 中文字幕在线永久免费播放| 97a片免费在线观看| 亚洲一区二区三区av网站| 天天操,天天干,天天射| 啊啊好大好爽啊啊操我啊啊视频| 精产国品久久一二三产区区别 | 成人午夜电影在线观看 久久| 欧美精品黑人性xxxx| 青春草视频在线免费播放| 精产国品久久一二三产区区别| 午夜av一区二区三区| 91精品综合久久久久3d动漫| 大鸡巴插入美女黑黑的阴毛| 欧美一区二区三区高清不卡tv | 天天日天天日天天射天天干| 久久国产精品精品美女| 无套猛戳丰满少妇人妻| 亚洲精品三级av在线免费观看| 在线免费观看国产精品黄色| 天天日天天日天天射天天干| avjpm亚洲伊人久久| 一区二区视频在线观看视频在线| 日韩美女福利视频网| 91免费观看国产免费| 97超碰免费在线视频| 精品av国产一区二区三区四区| 欧美男同性恋69视频| 国产精品视频一区在线播放| 亚洲成人熟妇一区二区三区| 天天色天天舔天天射天天爽| 97年大学生大白天操逼| 狍和女人的王色毛片| av亚洲中文天堂字幕网| 视频在线亚洲一区二区| 日本少妇高清视频xxxxx | 黑人性生活视频免费看| 亚洲av男人的天堂你懂的| 国产1区,2区,3区| 天天干狠狠干天天操| av成人在线观看一区| 国产白嫩美女一区二区| 成年美女黄网站18禁久久| 日本免费午夜视频网站| 欧美另类重口味极品在线观看| 美女骚逼日出水来了| av在线shipin| 亚洲无码一区在线影院| 午夜国产福利在线观看| 天天日天天做天天日天天做| 亚洲精品国偷自产在线观看蜜桃| 大陆av手机在线观看| 亚洲av日韩av网站| 伊人网中文字幕在线视频| 亚洲激情唯美亚洲激情图片| 亚洲久久午夜av一区二区| 激情五月婷婷免费视频| 亚洲av一妻不如妾| 亚洲第一黄色在线观看| AV天堂一区二区免费试看| 岛国毛片视频免费在线观看| 老司机欧美视频在线看| 欧美国品一二三产区区别| 91一区精品在线观看| 啪啪啪啪啪啪啪啪啪啪黄色| 这里只有精品双飞在线播放| 91麻豆精品传媒国产黄色片| 亚洲欧美精品综合图片小说 | 精品国产成人亚洲午夜| 伊人精品福利综合导航| 动色av一区二区三区| 欧美一区二区三区激情啪啪啪| 日韩午夜福利精品试看| 天天操,天天干,天天射| 亚洲综合乱码一区二区| 国产成人精品福利短视频| 青青青视频自偷自拍38碰| 3344免费偷拍视频| 亚洲欧美精品综合图片小说| 久久美欧人妻少妇一区二区三区| 日韩a级黄色小视频| av中文字幕网址在线| 日本裸体熟妇区二区欧美| 亚洲av第国产精品| 免费男阳茎伸入女阳道视频| 熟妇一区二区三区高清版| 亚洲一级av无码一级久久精品| 成人av免费不卡在线观看| 亚洲免费国产在线日韩| 中文字幕午夜免费福利视频| 只有精品亚洲视频在线观看| 日韩a级黄色小视频| 99热碰碰热精品a中文| 亚洲免费av在线视频| 青青青青爽手机在线| 曰本无码人妻丰满熟妇啪啪| 超级碰碰在线视频免费观看| 蜜桃久久久久久久人妻| 欧美亚洲偷拍自拍色图| 免费观看理论片完整版| 中文字幕日韩91人妻在线| 特级无码毛片免费视频播放| 丰满的子国产在线观看| 丝袜国产专区在线观看| 19一区二区三区在线播放| 偷拍自拍 中文字幕| 成年午夜影片国产片| 亚洲综合在线观看免费| 在线成人日韩av电影| 国产精品手机在线看片| 国产精品久久久久网| 久久国产精品精品美女| 5528327男人天堂| 亚洲国产在线精品国偷产拍| 91国语爽死我了不卡| 国产视频一区在线观看| 2012中文字幕在线高清| www日韩a级s片av| 国产精品人久久久久久| 亚洲国产成人在线一区| 国产高清在线观看1区2区| 亚洲av在线观看尤物| av中文在线天堂精品| 91精品国产综合久久久蜜| 成人av电影免费版| 亚洲成人黄色一区二区三区| 高清成人av一区三区| 免费看国产av网站| 国产V亚洲V天堂无码欠欠| 99亚洲美女一区二区三区| 成年人啪啪视频在线观看| 夜色17s精品人妻熟女| 青草亚洲视频在线观看| 亚洲精品麻豆免费在线观看| 欧美精品一二三视频| 91中文字幕最新合集| 91久久国产成人免费网站| av中文字幕电影在线看| 精品亚洲中文字幕av| 欧美国品一二三产区区别| 超级碰碰在线视频免费观看| 欧美视频不卡一区四区| 亚洲天堂av最新网址| 成人激情文学网人妻| 端庄人妻堕落挣扎沉沦| 日本精品美女在线观看| 性生活第二下硬不起来| 日本一本午夜在线播放| 成年午夜免费无码区| 日韩a级黄色小视频| 国产自拍黄片在线观看| 老师让我插进去69AV| 欧美黑人性暴力猛交喷水| 久久久极品久久蜜桃| 欧美一区二区三区在线资源| 国产成人精品av网站| 亚洲va国产va欧美va在线| 黄色大片男人操女人逼| 制服丝袜在线人妻中文字幕| 91精品视频在线观看免费| 欧美地区一二三专区| av在线资源中文字幕| 2020av天堂网在线观看| 欧美亚洲中文字幕一区二区三区| 99热国产精品666| 91精品国产91久久自产久强| 四川五十路熟女av| gay gay男男瑟瑟在线网站| 国产午夜无码福利在线看| 强行扒开双腿猛烈进入免费版| 中文字幕1卡1区2区3区| 亚洲精品欧美日韩在线播放| 一区二区三区四区视频| 中国黄色av一级片| 日韩欧美一级精品在线观看| 三级av中文字幕在线观看| 黑人乱偷人妻中文字幕| 日韩人妻丝袜中文字幕| 亚洲成人熟妇一区二区三区| 国产美女午夜福利久久| 一区二区久久成人网| 最后99天全集在线观看| 在线播放国产黄色av| 中文字幕乱码av资源| 国产在线自在拍91国语自产精品| 午夜毛片不卡在线看| 高潮视频在线快速观看国家快速| 欧美麻豆av在线播放| 欧美成一区二区三区四区| 91精品激情五月婷婷在线| 老师啊太大了啊啊啊尻视频| 免费岛国喷水视频在线观看| 午夜在线观看岛国av,com| 国产女人被做到高潮免费视频| 97超碰国语国产97超碰| 亚洲日本一区二区三区| 黄色大片男人操女人逼| 五月婷婷在线观看视频免费| 一区二区三区美女毛片| 国产日韩av一区二区在线| 女同互舔一区二区三区| 欧美精品一二三视频| 亚洲精品色在线观看视频| av天堂资源最新版在线看| 都市激情校园春色狠狠| 亚洲少妇人妻无码精品| 国产日本欧美亚洲精品视| 红桃av成人在线观看| 欧美韩国日本国产亚洲| 美洲精品一二三产区区别| 精品少妇一二三视频在线| 亚洲一级av大片免费观看| 狠狠操狠狠操免费视频| 国产97视频在线精品| 亚洲精品av在线观看| 18禁免费av网站| 久久精品亚洲成在人线a| 57pao国产一区二区| 欧美80老妇人性视频| 91人妻人人做人人爽在线| 国产一线二线三线的区别在哪| 天天躁日日躁狠狠躁av麻豆| 成年午夜免费无码区| 91国内精品久久久久精品一| 青青尤物在线观看视频网站| 三级黄色亚洲成人av| 少妇被强干到高潮视频在线观看| 亚洲第一黄色在线观看| 天堂av狠狠操蜜桃| 亚洲乱码中文字幕在线| 懂色av蜜桃a v| 人妻熟女在线一区二区| 午夜蜜桃一区二区三区| 国产熟妇人妻ⅹxxxx麻豆| 日韩人妻丝袜中文字幕| 嫩草aⅴ一区二区三区| 婷婷久久久综合中文字幕| 成人激情文学网人妻| 亚洲va天堂va国产va久| 视频在线亚洲一区二区| 精品久久久久久久久久久99| 亚洲av极品精品在线观看| 亚洲精品午夜久久久久| 韩国男女黄色在线观看| 欧美日本国产自视大全| 亚洲精品乱码久久久本| 红杏久久av人妻一区| av黄色成人在线观看| 天天日天天干天天舔天天射| 人妻少妇精品久久久久久| 亚洲另类在线免费观看| 亚洲欧美国产麻豆综合| 亚洲欧美色一区二区| 国内精品在线播放第一页| 成人区人妻精品一区二视频| 天天干夜夜操啊啊啊| 1区2区3区4区视频在线观看| 人妻3p真实偷拍一二区| 成年人的在线免费视频| 久久精品国产23696| 2020中文字幕在线播放| 黄色录像鸡巴插进去| 国产 在线 免费 精品| 欧美特色aaa大片| 亚洲成人激情av在线| 精品91自产拍在线观看一区| 无码中文字幕波多野不卡| 亚洲偷自拍高清视频| 97人妻色免费视频| 国产在线一区二区三区麻酥酥| 亚洲高清国产一区二区三区| 成人福利视频免费在线| 91精品视频在线观看免费| 日韩北条麻妃一区在线| 成人18禁网站在线播放| 自拍 日韩 欧美激情| 91破解版永久免费| 97a片免费在线观看| 精品首页在线观看视频| 欧美激情电影免费在线| weyvv5国产成人精品的视频| 天堂av在线播放免费| 精品欧美一区二区vr在线观看| 日韩熟女系列一区二区三区| gogo国模私拍视频| 成年人午夜黄片视频资源| 91精品国产麻豆国产| 91精品视频在线观看免费| 超碰中文字幕免费观看| 成人国产影院在线观看| 亚洲激情偷拍一区二区| 在线免费观看亚洲精品电影| 亚洲中文字幕国产日韩|