国产无遮挡裸体免费直播视频,久久精品国产蜜臀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://m.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

最新評論

亚洲av第国产精品| 狍和女人的王色毛片| 国产精品久久久黄网站| 又大又湿又爽又紧A视频| 性色av一区二区三区久久久| 青青青青视频在线播放| 狠狠鲁狠狠操天天晚上干干| 欧美视频中文一区二区三区| 天堂中文字幕翔田av| 精产国品久久一二三产区区别| 经典av尤物一区二区| 中文乱理伦片在线观看| 激情内射在线免费观看| 亚洲天堂精品福利成人av| 18禁美女羞羞免费网站| 日韩加勒比东京热二区| 干逼又爽又黄又免费的视频| 女生被男生插的视频网站| 激情五月婷婷综合色啪| 国产一区av澳门在线观看| 亚洲乱码中文字幕在线| 夜夜骑夜夜操夜夜奸| 国产女人叫床高潮大片视频| 欧美男人大鸡吧插女人视频| 91国产在线视频免费观看| 免费成人av中文字幕| 国产无遮挡裸体免费直播视频 | 2022天天干天天操| 国产日韩欧美视频在线导航| 操日韩美女视频在线免费看| 2012中文字幕在线高清| 嫩草aⅴ一区二区三区| 19一区二区三区在线播放| 韩国女主播精品视频网站| 粗大的内捧猛烈进出爽大牛汉子| 北条麻妃肉色丝袜视频| 2020久久躁狠狠躁夜夜躁 | 国产视频在线视频播放| av天堂加勒比在线| 狠狠躁狠狠爱网站视频| 狍和女人的王色毛片| 男人天堂最新地址av| 国产又粗又猛又爽又黄的视频美国| 馒头大胆亚洲一区二区| 精品亚洲在线免费观看| 一区二区三区综合视频| 男大肉棒猛烈插女免费视频| 国产熟妇乱妇熟色T区| 日韩精品啪啪视频一道免费| 久久热久久视频在线观看| 美女操逼免费短视频下载链接| 93人妻人人揉人人澡人人| 久久久噜噜噜久久熟女av| 亚洲欧美成人综合视频| 激情人妻校园春色亚洲欧美 | 日本韩国亚洲综合日韩欧美国产| 视频二区在线视频观看| 99精品免费观看视频| 国产品国产三级国产普通话三级| 大白屁股精品视频国产| 2012中文字幕在线高清| 99国内小视频在现欢看| 激情国产小视频在线| 91极品新人『兔兔』精品新作| 日韩av熟妇在线观看| 国产成人自拍视频在线免费观看| 又粗又硬又猛又爽又黄的| 国产精品视频男人的天堂| 国产成人精品一区在线观看| 97瑟瑟超碰在线香蕉| 92福利视频午夜1000看| 大鸡吧插入女阴道黄色片| 97人妻人人澡爽人人精品| 国产精品熟女久久久久浪潮| 97香蕉碰碰人妻国产樱花| 国产三级影院在线观看| 亚洲视频在线视频看视频在线| 久久久精品999精品日本| sw137 中文字幕 在线| 精品成人午夜免费看| 亚洲天天干 夜夜操| 日本在线不卡免费视频| 亚洲特黄aaaa片| 欧洲欧美日韩国产在线| 一区二区三区美女毛片| 亚洲福利精品视频在线免费观看| 国产欧美日韩在线观看不卡| 999久久久久999| 综合激情网激情五月天| 亚洲一级av大片免费观看| 青青青青青青青青青国产精品视频| 国产亚洲国产av网站在线| 日韩成人免费电影二区| 日韩a级黄色小视频| 欧美黑人性暴力猛交喷水| 天天插天天色天天日| 性欧美激情久久久久久久| 亚洲激情av一区二区| 成人国产影院在线观看| 最新国产精品拍在线观看| 黄色资源视频网站日韩| 午夜毛片不卡在线看| 在线免费91激情四射| 视频二区在线视频观看| 色综合色综合色综合色| 亚洲中文字幕校园春色| 国产午夜亚洲精品麻豆| 国产麻豆剧传媒精品国产av蜜桃 | 亚洲偷自拍高清视频| av天堂资源最新版在线看| 五十路在线观看完整版| 国产乱子伦精品视频潮优女| 久久久久只精品国产三级| 超污视频在线观看污污污| 在线观看视频一区麻豆| 桃色视频在线观看一区二区| 国产精品午夜国产小视频| 黄色在线观看免费观看在线| 亚洲国产最大av综合| 中文字幕av一区在线观看| 日韩美女精品视频在线观看网站| 鸡巴操逼一级黄色气| 啊啊啊视频试看人妻| 只有精品亚洲视频在线观看| 国产又粗又黄又硬又爽| 国产成人一区二区三区电影网站| 性感美女诱惑福利视频| 欧美一区二区三区啪啪同性| 人妻av无码专区久久绿巨人| 成人资源在线观看免费官网| 婷婷六月天中文字幕| 9久在线视频只有精品| 国产老熟女伦老熟妇ⅹ| 2022国产精品视频| 精品91高清在线观看| av手机在线观播放网站| 欧美伊人久久大香线蕉综合| 护士小嫩嫩又紧又爽20p| 亚洲少妇高潮免费观看| 久久亚洲天堂中文对白| 亚洲天堂有码中文字幕视频| 国产午夜亚洲精品不卡在线观看| eeuss鲁片一区二区三区| 青青色国产视频在线| 性生活第二下硬不起来| 久久香蕉国产免费天天| 福利视频一区二区三区筱慧| 五月激情婷婷久久综合网| 一区二区三区 自拍偷拍| 在线观看免费视频色97| 老熟妇xxxhd老熟女| 天堂av狠狠操蜜桃| 成人福利视频免费在线| 2020av天堂网在线观看| 啊用力插好舒服视频| 加勒比视频在线免费观看 | 亚洲人妻视频在线网| 天天日天天干天天爱| 欧亚乱色一区二区三区| 天天躁日日躁狠狠躁av麻豆| 国产刺激激情美女网站| 午夜久久香蕉电影网| 免费大片在线观看视频网站| 91在线免费观看成人| 亚洲va天堂va国产va久| 日韩写真福利视频在线观看| 又粗又长 明星操逼小视频| 亚洲av无硬久久精品蜜桃| 色秀欧美视频第一页| 免费男阳茎伸入女阳道视频| 天天做天天爽夜夜做少妇| 最后99天全集在线观看| 99久久超碰人妻国产| 中文字幕免费福利视频6| 亚洲自拍偷拍精品网| 在线网站你懂得老司机| 亚洲精品高清自拍av| 视频一区二区在线免费播放| 国产麻豆国语对白露脸剧情| 3337p日本欧洲大胆色噜噜| 青青草成人福利电影| 久久美欧人妻少妇一区二区三区| 免费观看丰满少妇做受| 日韩午夜福利精品试看| 在线观看亚洲人成免费网址| 亚洲av极品精品在线观看| 骚逼被大屌狂草视频免费看| 大鸡吧插逼逼视频免费看| 久久久91蜜桃精品ad| 国产日本精品久久久久久久| 韩国三级aaaaa高清视频| 在线 中文字幕 一区| 国产精品国产三级麻豆| 熟女人妻在线观看视频| 五月激情婷婷久久综合网| 亚洲国产在线精品国偷产拍| 久久这里有免费精品| 97精品视频在线观看| 在线观看视频污一区| 国产chinesehd精品麻豆| 亚洲av极品精品在线观看| 欧美地区一二三专区| 亚洲成人激情视频免费观看了| 91九色porny国产在线| 国产一区二区火爆视频| 日本特级片中文字幕| 亚洲精品久久综合久| 91久久精品色伊人6882| 成年午夜免费无码区| 老司机午夜精品视频资源| 美女吃鸡巴操逼高潮视频| 国产精品人妻66p| 国产精品系列在线观看一区二区| 综合国产成人在线观看| 888欧美视频在线| 亚洲av成人网在线观看| 日韩欧美一级aa大片| 青青青aaaa免费| 青青青艹视频在线观看| 亚洲中文字字幕乱码| 国产极品美女久久久久久| 视频在线亚洲一区二区| 男人操女人的逼免费视频| av线天堂在线观看| 亚洲欧美综合另类13p| 污污小视频91在线观看| 亚洲免费在线视频网站| 免费看美女脱光衣服的视频| 成人综合亚洲欧美一区| 天天射夜夜操狠狠干| 国产视频一区在线观看| 美女大bxxxx内射| av新中文天堂在线网址| 天天夜天天日天天日| 人妻素人精油按摩中出| 2018在线福利视频| 懂色av之国产精品| av老司机精品在线观看| 国产精品3p和黑人大战| 午夜在线一区二区免费| 亚洲熟妇x久久av久久| av中文字幕国产在线观看| 综合色区亚洲熟妇shxstz| 男人天堂色男人av| 丝袜亚洲另类欧美变态| 午夜场射精嗯嗯啊啊视频| 老司机在线精品福利视频| 黑人巨大精品欧美视频| 成人伊人精品色xxxx视频| 日本三极片中文字幕| 自拍偷拍vs一区二区三区| 99精品久久久久久久91蜜桃| 老司机免费视频网站在线看| 青青草原色片网站在线观看| 精品高跟鞋丝袜一区二区| 青青操免费日综合视频观看| 92福利视频午夜1000看| 亚洲天堂精品久久久| 操的小逼流水的文章| 人妻av无码专区久久绿巨人| 久久久精品999精品日本| 黄色片黄色片wyaa| 久久久制服丝袜中文字幕| 操日韩美女视频在线免费看| 亚洲美女高潮喷浆视频| 九色porny九色9l自拍视频| 自拍偷拍亚洲另类色图| 成人免费毛片aaaa| 91啪国自产中文字幕在线| 黄色av网站免费在线| 日韩美女福利视频网| 日韩美女福利视频网| 少妇露脸深喉口爆吞精| 熟女视频一区,二区,三区| 蜜桃视频入口久久久| 九九热99视频在线观看97| 国产女孩喷水在线观看| 男人操女人的逼免费视频| 国产熟妇乱妇熟色T区| 成人国产影院在线观看| 99re久久这里都是精品视频| 天天艹天天干天天操| 丝袜美腿视频诱惑亚洲无| 2021国产一区二区| 欧美另类一区二区视频| 天天干天天操天天扣| 亚洲综合乱码一区二区| 爆乳骚货内射骚货内射在线| 国产成人无码精品久久久电影| 天天通天天透天天插| 久久久人妻一区二区| 视频二区在线视频观看| 黄色无码鸡吧操逼视频| 免费在线黄色观看网站| 在线观看视频网站麻豆| 亚洲av第国产精品| 天天做天天干天天舔| 国产在线一区二区三区麻酥酥| aⅴ精产国品一二三产品| 国产综合视频在线看片| 99精品免费观看视频| 久草免费人妻视频在线| 91精品国产91青青碰| 大香蕉伊人中文字幕| 偷偷玩弄新婚人妻h视频| 日本三极片视频网站观看| 岛国免费大片在线观看| 黄色在线观看免费观看在线| 91免费观看在线网站| 5528327男人天堂| 黑人巨大的吊bdsm| 69精品视频一区二区在线观看| 国产男女视频在线播放| 啊啊好慢点插舔我逼啊啊啊视频 | 高清成人av一区三区| av线天堂在线观看| 美女福利视频导航网站| heyzo蜜桃熟女人妻| 亚洲综合另类精品小说| 一区二区三区综合视频| 日本性感美女视频网站| 播放日本一区二区三区电影 | 精品一区二区三区在线观看| 中文字幕在线乱码一区二区| 人妻久久久精品69系列| 日韩欧美在线观看不卡一区二区| 国产熟妇人妻ⅹxxxx麻豆| 免费观看污视频网站| 视频 国产 精品 熟女 | 91国内视频在线观看| 国产日韩精品一二三区久久久| 欧美怡红院视频在线观看| 亚洲国产免费av一区二区三区 | 亚洲午夜伦理视频在线| 亚洲2021av天堂| 99亚洲美女一区二区三区| 激情五月婷婷综合色啪| 成熟丰满熟妇高潮xx×xx| 婷婷激情四射在线观看视频| 一区二区三区麻豆福利视频| 又黄又刺激的午夜小视频| 中文字幕在线乱码一区二区| 男人的天堂在线黄色| 97人人妻人人澡人人爽人人精品| 国产av自拍偷拍盛宴| 国产成人自拍视频在线免费观看| 亚洲公开视频在线观看| 精品一线二线三线日本| 成人区人妻精品一区二视频| 鸡巴操逼一级黄色气| 日本黄在免费看视频| 一区二区三区另类在线| 大香蕉大香蕉在线有码 av| 国产精品免费不卡av| 欧美一区二区三区激情啪啪啪| 97超碰免费在线视频| 国产欧美精品不卡在线| 亚洲av色图18p| 天天操天天污天天射| 国产女孩喷水在线观看| 80电影天堂网官网| 999久久久久999| 午夜影院在线观看视频羞羞羞| 夜鲁夜鲁狠鲁天天在线| 天天操夜夜操天天操天天操| xxx日本hd高清| 97青青青手机在线视频| 伊人成人在线综合网| 99精品视频之69精品视频| 国产亚洲精品品视频在线| 五月色婷婷综合开心网4438| 五十路在线观看完整版| 视频在线亚洲一区二区| 国产一区成人在线观看视频| 大屁股熟女一区二区三区| 国产精品国产三级国产精东| 亚洲黄色av网站免费播放| lutube在线成人免费看| 欧美日韩熟女一区二区三区| 国产精品国产三级国产精东| 男人操女人逼逼视频网站| 国产一区av澳门在线观看| 亚洲av无硬久久精品蜜桃| 一二三区在线观看视频| 激情五月婷婷免费视频| 亚洲中文字字幕乱码| 韩国爱爱视频中文字幕| 久久国产精品精品美女| 国产精品午夜国产小视频| 亚洲av日韩av网站| 人妻少妇性色欲欧美日韩| av中文字幕在线导航| 91麻豆精品久久久久| 欧美成人综合视频一区二区| 亚洲精品国产综合久久久久久久久 | 亚洲狠狠婷婷综合久久app| 又色又爽又黄又刺激av网站| 国产午夜亚洲精品麻豆| 亚洲成人国产av在线| 天天操天天干天天插| 超碰公开大香蕉97| 国产亚洲四十路五十路| 色秀欧美视频第一页| 日本一道二三区视频久久| 天干天天天色天天日天天射| 91麻豆精品久久久久| 欧美一区二区三区高清不卡tv| 中文字幕在线永久免费播放| 手机看片福利盒子日韩在线播放| 激情国产小视频在线| 老司机99精品视频在线观看| 性欧美日本大妈母与子| 91人妻精品久久久久久久网站| 午夜精品一区二区三区更新| 色综合久久五月色婷婷综合| 极品丝袜一区二区三区| 老司机免费福利视频网| 91老熟女连续高潮对白| 日韩无码国产精品强奸乱伦| 新97超碰在线观看| 国产又粗又猛又爽又黄的视频美国| 亚洲人一区二区中文字幕| 18禁美女黄网站色大片下载| 国产精品视频男人的天堂| 熟女人妻三十路四十路人妻斩| 亚洲欧美综合另类13p| 专门看国产熟妇的网站| 欧美成人精品在线观看| 日韩成人综艺在线播放| 精品亚洲在线免费观看| 欧美区一区二区三视频| 精品亚洲在线免费观看| 国产片免费观看在线观看| 97年大学生大白天操逼| 国产1区,2区,3区| 中文字幕一区二区亚洲一区| 精品成人啪啪18免费蜜臀| 精品久久久久久久久久久99| 狠狠躁狠狠爱网站视频| 中文字幕一区二区自拍| 女蜜桃臀紧身瑜伽裤| 中文字幕中文字幕 亚洲国产| 免费高清自慰一区二区三区网站| 自拍偷拍,中文字幕| 在线观看成人国产电影| 亚洲欧美另类自拍偷拍色图| 性色av一区二区三区久久久| 欧美 亚洲 另类综合| 青青青艹视频在线观看| 欧美成人小视频在线免费看| 成人免费做爰高潮视频| 国产午夜激情福利小视频在线| 首之国产AV医生和护士小芳| 精品国产亚洲av一淫| 中文字幕日韩精品就在这里| 色av色婷婷人妻久久久精品高清| 沙月文乃人妻侵犯中文字幕在线 | 中文字幕最新久久久| 亚洲成人国产av在线| 大香蕉伊人中文字幕| 久久久久久久精品成人热| 五十路丰满人妻熟妇| 九一传媒制片厂视频在线免费观看| 在线免费观看欧美小视频| 青青青青青青草国产| 日本熟女精品一区二区三区| 漂亮 人妻被中出中文| 初美沙希中文字幕在线| 青娱乐极品视频青青草| 在线免费观看视频一二区| 亚洲av成人免费网站| 黄色片黄色片wyaa| 国内精品在线播放第一页| 五月天色婷婷在线观看视频免费| 亚洲欧美综合另类13p| 在线国产精品一区二区三区| 成人精品视频99第一页| 亚洲国产免费av一区二区三区| 日韩少妇人妻精品无码专区| 视频在线亚洲一区二区| 美味人妻2在线播放| 黄色成年网站午夜在线观看 | 精品人妻伦一二三区久| 亚洲激情唯美亚洲激情图片| 黄色片年轻人在线观看| 毛片一级完整版免费| 人妻3p真实偷拍一二区| 老师啊太大了啊啊啊尻视频| 美女福利写真在线观看视频| 日本a级视频老女人| 在线观看欧美黄片一区二区三区 | 国产自拍黄片在线观看| 天天操夜夜操天天操天天操| 国产妇女自拍区在线观看| av中文字幕福利网| 国产va精品免费观看| 亚洲偷自拍高清视频| 人妻少妇中文有码精品| 欲满人妻中文字幕在线| 亚洲国产免费av一区二区三区| 亚洲另类综合一区小说| 午夜精品福利一区二区三区p | 亚洲男人在线天堂网| 大香蕉玖玖一区2区| 唐人色亚洲av嫩草| 国产亚州色婷婷久久99精品| 中文字幕日韩人妻在线三区| 天天日天天干天天搡| 麻豆性色视频在线观看| 日本韩国亚洲综合日韩欧美国产| 免费在线黄色观看网站| 人人妻人人爱人人草| 日本韩国免费一区二区三区视频| 综合一区二区三区蜜臀| 91精品国产黑色丝袜| 最新激情中文字幕视频| 一区二区在线视频中文字幕| 日本熟妇丰满厨房55| 久草极品美女视频在线观看| 全国亚洲男人的天堂| 亚洲一级美女啪啪啪| 岛国毛片视频免费在线观看| 亚洲精品麻豆免费在线观看| 3344免费偷拍视频| 制服丝袜在线人妻中文字幕| 国产精品国色综合久久| 亚洲精品午夜久久久久| av一本二本在线观看| 亚洲蜜臀av一区二区三区九色| 亚洲天堂精品久久久| 天天操天天干天天艹| 五色婷婷综合狠狠爱| 亚洲视频乱码在线观看| 欧美成人综合视频一区二区 | 国产av福利网址大全| 精品一区二区三四区| 日韩在线视频观看有码在线| 亚洲高清视频在线不卡| 夜色撩人久久7777| 国产成人精品亚洲男人的天堂| 91国内精品久久久久精品一| 精品黑人巨大在线一区| 中文字幕人妻三级在线观看| 人人妻人人澡欧美91精品| av老司机亚洲一区二区| 色综合久久五月色婷婷综合| 成年人黄色片免费网站| 直接观看免费黄网站| 亚洲av日韩av网站| 99热这里只有国产精品6| 粉嫩小穴流水视频在线观看| 精品91自产拍在线观看一区| 老司机福利精品免费视频一区二区| 97超碰免费在线视频| 国产精品精品精品999| 精品首页在线观看视频| 国产日韩精品一二三区久久久| 久久这里只有精品热视频| 午夜免费体验区在线观看| 国产精品黄色的av| 黄色的网站在线免费看 | 亚洲精品ww久久久久久| 成熟丰满熟妇高潮xx×xx| 精产国品久久一二三产区区别 | 特级无码毛片免费视频播放| av亚洲中文天堂字幕网| 少妇深喉口爆吞精韩国| 国产伊人免费在线播放| 亚洲精品国品乱码久久久久| 欧美精品伦理三区四区| 中文字幕在线第一页成人| www日韩毛片av| 老司机福利精品免费视频一区二区| 日本后入视频在线观看| 91精品国产麻豆国产| 成人性爱在线看四区| caoporm超碰国产| 最新中文字幕免费视频| 鸡巴操逼一级黄色气| 久久精品国产23696| 2020av天堂网在线观看| 91av精品视频在线| 亚洲国产欧美一区二区三区久久| 99精品视频之69精品视频| 91精品资源免费观看| 久久丁香婷婷六月天| 成人免费做爰高潮视频| 成人av在线资源网站| 日韩成人性色生活片| 午夜的视频在线观看| 亚洲欧美成人综合视频| 在线观看日韩激情视频| 欧美乱妇无乱码一区二区| 大鸡吧插入女阴道黄色片| 日本成人一区二区不卡免费在线| 欧美亚洲免费视频观看| 中文字幕在线免费第一页| 在线免费观看欧美小视频| 一区二区三区日本伦理| 免费看国产av网站| 日本熟女精品一区二区三区| 伊人综合免费在线视频| 欧美地区一二三专区| 日韩剧情片电影在线收看| 国产亚洲欧美另类在线观看| 蜜桃视频在线欧美一区| 精品久久久久久久久久中文蒉| 一本久久精品一区二区| 人妻丰满熟妇综合网| 五月天久久激情视频| 国产成人精品一区在线观看 | 97色视频在线观看| 亚洲成人av一区在线| aiss午夜免费视频| 天天做天天干天天舔| 只有精品亚洲视频在线观看| 二区中出在线观看老师| 天天干天天插天天谢| 97超碰国语国产97超碰| 影音先锋女人av噜噜色| av天堂中文字幕最新| 婷婷激情四射在线观看视频| 中文字幕在线第一页成人| 大香蕉大香蕉在线看| 亚洲人妻av毛片在线| 十八禁在线观看地址免费| av一区二区三区人妻| av手机免费在线观看高潮| 懂色av之国产精品| 高清成人av一区三区| 人人超碰国字幕观看97| av在线免费中文字幕| 伊人成人在线综合网| 揄拍成人国产精品免费看视频 | 99视频精品全部15| 欧美怡红院视频在线观看| 93人妻人人揉人人澡人人| 婷婷综合蜜桃av在线| av网址国产在线观看| 国产一级麻豆精品免费| 欧美男同性恋69视频| 国产麻豆剧传媒精品国产av蜜桃| 精品suv一区二区69| 最新91精品视频在线| 国产又粗又硬又猛的毛片视频| 国产黄色高清资源在线免费观看| 国产精品一二三不卡带免费视频 | jul—619中文字幕在线| 青青青青青手机视频| av视屏免费在线播放| 亚洲成人av在线一区二区| 日韩欧美一级aa大片| 91大屁股国产一区二区| 538精品在线观看视频| 高清成人av一区三区| 性欧美日本大妈母与子| 最新中文字幕免费视频| 日韩在线中文字幕色| 欧美成人精品在线观看| 美女福利视频网址导航| 中文 成人 在线 视频| 色噜噜噜噜18禁止观看| 亚洲国产精品中文字幕网站| 久久久久久久亚洲午夜综合福利 | xxx日本hd高清| 亚洲av日韩av网站| 亚洲成人国产综合一区| 一区二区视频在线观看免费观看| 日本韩国免费福利精品| 亚洲人妻国产精品综合| 中文字幕亚洲久久久| 直接观看免费黄网站| 久久三久久三久久三久久| 亚洲精品麻豆免费在线观看| 偷拍美女一区二区三区| 亚洲图片偷拍自拍区| 99久久99一区二区三区| 一区二区在线观看少妇| 亚洲变态另类色图天堂网| 午夜大尺度无码福利视频 | 亚洲精品国产久久久久久| 中字幕人妻熟女人妻a62v网| 岳太深了紧紧的中文字幕| 国产精品国产三级麻豆| 亚洲精品午夜aaa久久| 97精品综合久久在线| 亚洲美女自偷自拍11页| 国产亚洲成人免费在线观看| 色花堂在线av中文字幕九九| 99精品国产aⅴ在线观看| 中文字幕人妻一区二区视频| 亚洲人妻视频在线网| 中文字幕午夜免费福利视频| 午夜婷婷在线观看视频| 1000小视频在线| 青青青青青手机视频| 黄色大片男人操女人逼| 国产一区二区视频观看| 国产亚洲精品品视频在线| 欧美精品黑人性xxxx| 唐人色亚洲av嫩草| av成人在线观看一区| 一区二区三区四区五区性感视频| 换爱交换乱高清大片| 4个黑人操素人视频网站精品91| 日韩人妻在线视频免费| 99国内小视频在现欢看| 视频 国产 精品 熟女 | 免费观看丰满少妇做受| 少妇被强干到高潮视频在线观看| 黄片大全在线观看观看| 亚洲另类伦春色综合小| 国产一区成人在线观看视频| 爱有来生高清在线中文字幕| 国产亚洲四十路五十路| av中文字幕在线导航| 人妻丝袜榨强中文字幕| 国产综合高清在线观看| 红杏久久av人妻一区| 一区国内二区日韩三区欧美| 日本熟妇色熟妇在线观看| 亚洲av极品精品在线观看| 日韩av有码中文字幕| 亚洲中文精品人人免费| 亚洲久久午夜av一区二区| 这里只有精品双飞在线播放| 成年人中文字幕在线观看| 国产高清在线观看1区2区| 亚洲免费成人a v| 欧美精品欧美极品欧美视频| 天天日天天爽天天干| 中国无遮挡白丝袜二区精品| 欧美一级片免费在线成人观看| 99国产精品窥熟女精品| 亚洲国产精品黑丝美女| nagger可以指黑人吗| 国产第一美女一区二区三区四区| 成人动漫大肉棒插进去视频| 搞黄色在线免费观看| 日日爽天天干夜夜操| 亚洲 欧美 精品 激情 偷拍 | 在线国产中文字幕视频| caoporn蜜桃视频| 欧美精品亚洲精品日韩在线| 免费在线播放a级片| 国产视频一区在线观看| 中文字幕一区二区三区蜜月| 晚上一个人看操B片| 偷拍自拍亚洲美腿丝袜| 91精品综合久久久久3d动漫| 91精品国产91青青碰| 日本特级片中文字幕| 久久尻中国美女视频| 天天日天天干天天要| 制服丝袜在线人妻中文字幕| 欧美日本在线观看一区二区| 日本一二三中文字幕| 91九色国产porny蝌蚪| 免费成人va在线观看| 国产一区二区神马久久| 青青青青爽手机在线| 免费成人av中文字幕| 快插进小逼里大鸡吧视频| 中文字幕第1页av一天堂网| 天干天天天色天天日天天射| 中文字幕人妻被公上司喝醉在线| 国产精品自拍在线视频| 国产福利小视频二区| a v欧美一区=区三区| 黄色无码鸡吧操逼视频| 免费观看污视频网站| 同居了嫂子在线播高清中文| 自拍偷拍日韩欧美一区二区| 一区二区三区毛片国产一区| 制服丝袜在线人妻中文字幕| 视频一区二区在线免费播放| 午夜av一区二区三区| 亚欧在线视频你懂的| 92福利视频午夜1000看| 欧美视频不卡一区四区| 日韩中文字幕在线播放第二页| 国产三级影院在线观看| 在线国产日韩欧美视频| 中文字幕之无码色多多| 精品黑人巨大在线一区| 在线观看视频 你懂的| 亚洲精品成人网久久久久久小说| 天天干天天插天天谢| 和邻居少妇愉情中文字幕| 性色蜜臀av一区二区三区| 快点插进来操我逼啊视频| 亚洲va天堂va国产va久| 天天干天天操天天爽天天摸| 自拍偷拍,中文字幕| 婷婷色中文亚洲网68| 中文字幕,亚洲人妻| 婷婷久久一区二区字幕网址你懂得 | 精品区一区二区三区四区人妻| 日本一本午夜在线播放| 18禁美女黄网站色大片下载| 可以在线观看的av中文字幕| 国产日韩精品电影7777| 超鹏97历史在线观看| 亚洲国产中文字幕啊啊啊不行了| 国产实拍勾搭女技师av在线| 啊啊啊想要被插进去视频| 国产黄色片蝌蚪九色91| 国产av自拍偷拍盛宴| 99久久99一区二区三区| 国产亚州色婷婷久久99精品| 老司机你懂得福利视频| 国产高清精品极品美女| 日本又色又爽又黄又粗| 美女av色播在线播放| 男人靠女人的逼视频| 色哟哟国产精品入口| 精品美女久久久久久| 啊啊好慢点插舔我逼啊啊啊视频| 大香蕉福利在线观看| 亚洲天堂有码中文字幕视频| 91 亚洲视频在线观看| 国产高清97在线观看视频| 在线免费91激情四射| 适合午夜一个人看的视频| 欧美成人综合视频一区二区| 性感美女高潮视频久久久| 99亚洲美女一区二区三区| 91超碰青青中文字幕| 丁香花免费在线观看中文字幕| 99久久超碰人妻国产| 日韩在线视频观看有码在线| 亚洲一级特黄特黄黄色录像片| 狠狠鲁狠狠操天天晚上干干| 色婷婷六月亚洲综合香蕉| 老熟妇xxxhd老熟女| 亚洲精品无码色午夜福利理论片| 午夜av一区二区三区| 天天日天天摸天天爱| 农村胖女人操逼视频| 搡老妇人老女人老熟女| jiujiure精品视频在线| 91极品新人『兔兔』精品新作| 欧美视频不卡一区四区| 亚洲自拍偷拍精品网| 只有精品亚洲视频在线观看| 91精品国产91久久自产久强| 99国内精品永久免费视频| 毛片一级完整版免费| 日本熟妇色熟妇在线观看| 巨乳人妻日下部加奈被邻居中出 | 日本男女操逼视频免费看| 中文字幕av男人天堂| 色综合久久无码中文字幕波多| 亚洲少妇高潮免费观看| 美女大bxxxx内射| 欧美美女人体视频一区| wwwxxx一级黄色片| 天堂av在线最新版在线| 中文字幕中文字幕人妻| 在线视频自拍第三页| 成年人免费看在线视频| 最新97国产在线视频| 中文 成人 在线 视频| 国产使劲操在线播放| 99精品免费久久久久久久久a| 最新国产精品网址在线观看| 任我爽精品视频在线播放| 欧美伊人久久大香线蕉综合| 免费在线观看污污视频网站| 色综合久久无码中文字幕波多| 欧美偷拍自拍色图片| 亚洲日本一区二区久久久精品| 播放日本一区二区三区电影 | 18禁美女黄网站色大片下载| 色哟哟在线网站入口| 亚洲高清免费在线观看视频| 人人在线视频一区二区| 99久久久无码国产精品性出奶水 | 天天干天天搞天天摸| 青青青国产免费视频| 欧美日本国产自视大全| 欧美精产国品一二三产品区别大吗| 99久久久无码国产精品性出奶水| 在线观看免费视频色97| 中文字幕网站你懂的| 久草视频在线免播放| 91精品一区二区三区站长推荐| 中文字幕亚洲中文字幕| asmr福利视频在线观看| 人妻丝袜精品中文字幕| 国产精品人妻一区二区三区网站| 天堂av在线播放免费| 天天干天天啪天天舔| 亚洲的电影一区二区三区| 91国语爽死我了不卡| 亚洲自拍偷拍综合色| 免费在线福利小视频| 亚洲av极品精品在线观看| 99热这里只有国产精品6| 亚洲精品乱码久久久久久密桃明| 中文字幕熟女人妻久久久| 福利视频广场一区二区| 日本最新一二三区不卡在线| 少妇系列一区二区三区视频| 66久久久久久久久久久| 欧美3p在线观看一区二区三区| 成人av免费不卡在线观看| av在线免费资源站| 国产精品精品精品999| 天天色天天爱天天爽| 国产一区二区火爆视频| 9国产精品久久久久老师| 一区二区三区四区视频在线播放| 激情五月婷婷综合色啪| 欧美成一区二区三区四区| av中文字幕在线导航| 性色av一区二区三区久久久| 蜜桃视频17c在线一区二区| 一区二区三区日本伦理| 免费成人va在线观看| 在线免费观看av日韩| 天天夜天天日天天日| 中文字幕一区二 区二三区四区 | 日韩中文字幕精品淫| h国产小视频福利在线观看| 成年人的在线免费视频| 成人影片高清在线观看| 天天日天天干天天爱| 91人妻精品一区二区久久| 中文字幕免费福利视频6| 首之国产AV医生和护士小芳| 热久久只有这里有精品| 蜜桃色婷婷久久久福利在线 | 国产精品大陆在线2019不卡| 姐姐的朋友2在线观看中文字幕| 在线免费观看日本伦理| 免费在线观看视频啪啪| 国产精品国产三级国产精东| 亚洲欧美在线视频第一页| 国产亚州色婷婷久久99精品| 亚洲天堂成人在线观看视频网站| 日本在线不卡免费视频| 亚洲av午夜免费观看| 天天日天天添天天爽| 黄色无码鸡吧操逼视频| 岛国av高清在线成人在线| 免费手机黄页网址大全| 东游记中文字幕版哪里可以看到| 亚洲欧美另类自拍偷拍色图| 国产亚洲视频在线观看| 青青青青草手机在线视频免费看| 青娱乐蜜桃臀av色| 国产高清在线观看1区2区| 99国产精品窥熟女精品| 少妇与子乱在线观看| 国产精品福利小视频a| 国产福利小视频免费观看| 51国产偷自视频在线播放| 白白操白白色在线免费视频| 五十路息与子猛烈交尾视频| 在线不卡成人黄色精品| 免费十精品十国产网站| 黄色中文字幕在线播放| 日韩精品中文字幕福利| 日韩欧美中文国产在线| 一区二区视频视频视频| 欧美精产国品一二三区| 最新中文字幕免费视频| 日本脱亚入欧是指什么| 看一级特黄a大片日本片黑人| 男女第一次视频在线观看| 中文字幕一区二区三区蜜月| 九色视频在线观看免费| 精品国产高潮中文字幕| 亚洲中文字幕乱码区| 涩涩的视频在线观看视频| 黑人解禁人妻叶爱071| 欧美乱妇无乱码一区二区| 欧美成人综合视频一区二区| 国产精品黄色的av| 男大肉棒猛烈插女免费视频| 19一区二区三区在线播放| 综合国产成人在线观看| 午夜久久香蕉电影网| 久久久久久国产精品| 精品91高清在线观看| 亚洲 国产 成人 在线| 青青草原网站在线观看| 亚洲 清纯 国产com| 日韩av有码中文字幕| 国产九色91在线观看精品| 欧美日韩v中文在线| 国产视频精品资源网站| 天堂女人av一区二区| 中字幕人妻熟女人妻a62v网 | 亚洲免费成人a v| 97年大学生大白天操逼| 亚洲码av无色中文| 偷偷玩弄新婚人妻h视频| 换爱交换乱高清大片| 国产精品久久久久国产三级试频| 最新黄色av网站在线观看| 人妻久久久精品69系列| 在线观看日韩激情视频| 热久久只有这里有精品| 国产熟妇人妻ⅹxxxx麻豆| 日本精品一区二区三区在线视频。 | eeuss鲁片一区二区三区| 亚洲欧美国产麻豆综合| 成人在线欧美日韩国产| 99久久99一区二区三区| 日本美女性生活一级片| 久久久久久九九99精品| 精彩视频99免费在线| 污污小视频91在线观看| 国产福利在线视频一区| 女警官打开双腿沦为性奴| 91啪国自产中文字幕在线| 93精品视频在线观看| 色综合久久无码中文字幕波多| 99精品免费久久久久久久久a| 3344免费偷拍视频| 亚洲人妻30pwc| 亚洲欧美激情国产综合久久久| 91国语爽死我了不卡| 春色激情网欧美成人| 午夜在线精品偷拍一区二| 在线观看911精品国产| 亚洲成人午夜电影在线观看| 毛片av在线免费看| 99国内精品永久免费视频| 专门看国产熟妇的网站| 中文字幕国产专区欧美激情| 亚洲第一伊人天堂网| 啪啪啪啪啪啪啪免费视频| 天天干天天爱天天色| 2022天天干天天操| 美日韩在线视频免费看| 免费观看成年人视频在线观看| 女生被男生插的视频网站| 亚洲精品 日韩电影| 成人伊人精品色xxxx视频| 香蕉片在线观看av| 五十路av熟女松本翔子| 天堂av在线官网中文| 亚洲精品无码色午夜福利理论片| 欧美在线精品一区二区三区视频| 91高清成人在线视频| 久久三久久三久久三久久| 大香蕉伊人国产在线| 亚洲国产精品久久久久久6| 日韩精品电影亚洲一区| 亚洲美女高潮喷浆视频| 久久久久五月天丁香社区| 鸡巴操逼一级黄色气| 国产+亚洲+欧美+另类| 超级碰碰在线视频免费观看| 亚洲久久午夜av一区二区| 午夜精品久久久久久99热| wwwxxx一级黄色片| 91 亚洲视频在线观看| 97超碰国语国产97超碰| 1000部国产精品成人观看视频| 欧美一区二区三区激情啪啪啪| 2o22av在线视频| 日本熟女50视频免费| 在线观看亚洲人成免费网址| 中国老熟女偷拍第一页| 亚洲人人妻一区二区三区 | 亚洲综合乱码一区二区| 国产真实灌醉下药美女av福利| 搡老妇人老女人老熟女| 日本欧美视频在线观看三区| 欧美一区二区中文字幕电影| 少妇高潮无套内谢麻豆| 亚洲男人让女人爽的视频| 欧美日韩高清午夜蜜桃大香蕉| 色综合久久五月色婷婷综合| 国产精彩福利精品视频| 亚洲av黄色在线网站| 中文字幕日韩人妻在线三区| 四川乱子伦视频国产vip| 色综合色综合色综合色| 午夜久久久久久久精品熟女| 欧美色呦呦最新网址| 婷婷六月天中文字幕| 亚洲免费av在线视频| 久久久久只精品国产三级| 美女操逼免费短视频下载链接 | 国产精品污污污久久| 久久久久只精品国产三级| 伊人情人综合成人久久网小说| av男人天堂狠狠干| 亚洲精品乱码久久久本| 日本啪啪啪啪啪啪啪| 777奇米久久精品一区| 在线观看国产网站资源| 国产女孩喷水在线观看| 国产精品久久久久久美女校花| 曰本无码人妻丰满熟妇啪啪| 少妇人妻二三区视频| 欧洲亚洲欧美日韩综合| 国产欧美精品免费观看视频| 久草视频在线一区二区三区资源站 | 福利午夜视频在线观看| sspd152中文字幕在线| 天天操天天干天天艹| 亚洲激情,偷拍视频| 在线国产日韩欧美视频| 日本丰满熟妇BBXBBXHD| 青青草成人福利电影| 亚洲欧美在线视频第一页| 91桃色成人网络在线观看| 国产美女一区在线观看| 91天堂天天日天天操| japanese日本熟妇另类| 国产麻豆剧传媒精品国产av蜜桃 | 天天射夜夜操综合网| 特级欧美插插插插插bbbbb| 懂色av蜜桃a v| 精品老妇女久久9g国产| 巨乳人妻日下部加奈被邻居中出| 少妇人妻久久久久视频黄片| av中文字幕电影在线看| 制丝袜业一区二区三区| 亚洲欧美久久久久久久久| 亚洲蜜臀av一区二区三区九色| 91高清成人在线视频| 国产精品手机在线看片| 丰满少妇翘臀后进式| 国产片免费观看在线观看| 亚洲精品国产在线电影| gogo国模私拍视频| 免费十精品十国产网站| 国产janese在线播放| 天天摸天天干天天操科普| 色天天天天射天天舔| 精品欧美一区二区vr在线观看 | 18禁免费av网站| 亚洲成人国产av在线| 国产精品久久久久网| 毛片一级完整版免费| 国产精品久久久久久久精品视频| 中文字幕一区二区亚洲一区| 国产三级片久久久久久久| 亚洲欧美一卡二卡三卡| 阴茎插到阴道里面的视频| 黑人3p华裔熟女普通话| 国产精品人妻一区二区三区网站| 男女之间激情网午夜在线| 99久久久无码国产精品性出奶水 | 黄色三级网站免费下载| 老鸭窝日韩精品视频观看| 青青青青草手机在线视频免费看| 人人人妻人人澡人人| 最新日韩av传媒在线| 巨乳人妻日下部加奈被邻居中出| 亚洲特黄aaaa片| 性色av一区二区三区久久久| 久久午夜夜伦痒痒想咳嗽P| 偷拍自拍福利视频在线观看| 午夜久久香蕉电影网| 日本裸体熟妇区二区欧美| 日韩写真福利视频在线观看| nagger可以指黑人吗| 欧美精产国品一二三区| 青青青爽视频在线播放| 欧美偷拍亚洲一区二区| 中文字幕最新久久久| 国产精品黄片免费在线观看| 亚洲激情唯美亚洲激情图片| 青娱乐在线免费视频盛宴| av在线资源中文字幕| 老司机99精品视频在线观看| 一二三中文乱码亚洲乱码one| 999九九久久久精品| 日韩美女搞黄视频免费| 九色porny九色9l自拍视频| 国产精品午夜国产小视频| 福利一二三在线视频观看| 福利一二三在线视频观看| 日本啪啪啪啪啪啪啪| 男人操女人逼逼视频网站| 91片黄在线观看喷潮| 成人综合亚洲欧美一区| 天天日天天舔天天射进去| 大胸性感美女羞爽操逼毛片| 91超碰青青中文字幕| 三上悠亚和黑人665番号| 东京热男人的av天堂| 国产精品大陆在线2019不卡| 成年人中文字幕在线观看| 日本后入视频在线观看| 日韩av有码一区二区三区4| 好太好爽好想要免费| 亚洲丝袜老师诱惑在线观看| 亚洲va天堂va国产va久| 中英文字幕av一区| 国产精品成久久久久三级蜜臀av| 国产在线观看黄色视频| 91传媒一区二区三区| 日本少妇的秘密免费视频| 色哟哟在线网站入口| 精品国产午夜视频一区二区| 成人sm视频在线观看| 久久久久久99国产精品| 都市家庭人妻激情自拍视频| 4个黑人操素人视频网站精品91| 国产亚洲视频在线二区| 日本真人性生活视频免费看| 91精品国产观看免费| 日韩中文字幕在线播放第二页| 亚洲成人线上免费视频观看| 中文字幕高清在线免费播放| 欧美视频不卡一区四区| 亚洲欧美一区二区三区爱爱动图| 亚洲福利天堂久久久久久| 成人18禁网站在线播放| 69精品视频一区二区在线观看| 日韩熟女av天堂系列| 免费观看国产综合视频| 大尺度激情四射网站| 91小伙伴中女熟女高潮| 一区二区三区久久久91| 亚洲精品国产在线电影| 青青青青操在线观看免费| 不卡日韩av在线观看| 天天插天天狠天天操| 亚洲综合一区二区精品久久| 免费成人av中文字幕| 香蕉aⅴ一区二区三区| 国产成人综合一区2区| 精品国产在线手机在线| 国产av国片精品一区二区| 人妻熟女中文字幕aⅴ在线| 中文字幕最新久久久| 国产卡一卡二卡三乱码手机| 亚洲欧美激情国产综合久久久| 久久久久国产成人精品亚洲午夜| 久精品人妻一区二区三区| 国产福利小视频免费观看| 姐姐的朋友2在线观看中文字幕| 人妻最新视频在线免费观看| 2020久久躁狠狠躁夜夜躁| 日本女人一级免费片| 国产麻豆91在线视频| 亚洲欧美精品综合图片小说| 久久麻豆亚洲精品av| 午夜精品久久久久麻豆影视| 97超碰人人搞人人| 绯色av蜜臀vs少妇| 人人在线视频一区二区| 人人妻人人爱人人草| 天天日天天干天天舔天天射| 97人妻人人澡爽人人精品| 中文字幕一区二区人妻电影冢本| 扒开让我视频在线观看| 97国产福利小视频合集| 国产一区二区神马久久| 不卡一不卡二不卡三| 天天干天天爱天天色| 自拍偷拍vs一区二区三区| 日本www中文字幕| 日本中文字幕一二区视频| 人人爱人人妻人人澡39| 91麻豆精品91久久久久同性| 亚洲日本一区二区久久久精品| 中文字幕第三十八页久久| 特一级特级黄色网片| 99人妻视频免费在线| 欧美韩国日本国产亚洲| 欧美亚洲一二三区蜜臀| 在线免费观看靠比视频的网站| 家庭女教师中文字幕在线播放| 亚洲欧美另类自拍偷拍色图| 精品suv一区二区69| 美女操逼免费短视频下载链接| 黑人3p华裔熟女普通话| 老司机在线精品福利视频| av大全在线播放免费| 激情国产小视频在线| 久久一区二区三区人妻欧美| 蜜桃视频在线欧美一区| 国产熟妇一区二区三区av| 免费看高清av的网站| 国产久久久精品毛片| 国产视频一区在线观看| 懂色av之国产精品| 日韩欧美国产精品91| 97精品视频在线观看| 亚洲 清纯 国产com| 91国产资源在线视频| 91社福利《在线观看| h国产小视频福利在线观看| 亚洲人一区二区中文字幕| 亚洲成人激情视频免费观看了| 做爰视频毛片下载蜜桃视频1| 极品粉嫩小泬白浆20p主播| 乱亲女秽乱长久久久| 日本人妻欲求不满中文字幕| 动漫黑丝美女的鸡巴| 午夜美女少妇福利视频| 一区二区三区久久久91| 黄网十四区丁香社区激情五月天| 一个色综合男人天堂| 精品久久久久久久久久久a√国产 日本女大学生的黄色小视频 | 家庭女教师中文字幕在线播放| 九色视频在线观看免费| 婷婷激情四射在线观看视频| 欧美精品激情在线最新观看视频| 国产精品一区二区三区蜜臀av| 搞黄色在线免费观看| 香港三日本三韩国三欧美三级| 亚洲精品久久综合久| av新中文天堂在线网址| 欧美日韩不卡一区不区二区| 少妇人妻真实精品视频| 久精品人妻一区二区三区| 在线视频这里只有精品自拍| 亚洲少妇人妻无码精品| 天天躁日日躁狠狠躁av麻豆| 成年美女黄网站18禁久久| 9国产精品久久久久老师| 亚洲国产成人av在线一区| 熟女91pooyn熟女| 91人妻精品一区二区久久| 晚上一个人看操B片| 91试看福利一分钟| 亚洲高清免费在线观看视频| 欧美成人猛片aaaaaaa| 中文字幕一区的人妻欧美日韩| 欧美一区二区三区高清不卡tv| 在线视频国产欧美日韩| 日本性感美女写真视频| 日本熟妇一区二区x x| 精品久久久久久久久久久a√国产 日本女大学生的黄色小视频 | 天天日天天爽天天干| 国产综合高清在线观看| 青青青青爽手机在线| 午夜激情精品福利视频| 桃色视频在线观看一区二区 | 久久免费看少妇高潮完整版| 在线免费观看黄页视频| 亚洲美女高潮喷浆视频| 亚洲精品 日韩电影| 国产亚洲成人免费在线观看| 午夜精品福利91av| 一区二区视频在线观看视频在线| 在线视频国产欧美日韩| 91小伙伴中女熟女高潮| 天堂av在线最新版在线| 亚洲精品乱码久久久久久密桃明| 三级av中文字幕在线观看| japanese日本熟妇另类| 黄色黄色黄片78在线| 国产精品久久久久久久精品视频| 欧美日本国产自视大全| 成年美女黄网站18禁久久| 欧美在线精品一区二区三区视频 | sejizz在线视频| 亚洲人妻av毛片在线| 中文字幕综合一区二区| 91国偷自产一区二区三区精品| 沈阳熟妇28厘米大战黑人| 欧美成人精品在线观看| 色哟哟国产精品入口| 久草极品美女视频在线观看| 老司机欧美视频在线看| 日本又色又爽又黄又粗| 亚洲伊人久久精品影院一美女洗澡 | nagger可以指黑人吗| 久久永久免费精品人妻专区 | 中文字幕高清资源站| 热思思国产99re| 国产视频网站一区二区三区| 初美沙希中文字幕在线| 91精品国产黑色丝袜| 国产三级片久久久久久久| 人妻丝袜诱惑我操她视频| 久久久精品欧洲亚洲av| av老司机亚洲一区二区| 成人网18免费视频版国产| av线天堂在线观看| 日本成人不卡一区二区| 成年人该看的视频黄免费| 国产1区,2区,3区| 风流唐伯虎电视剧在线观看 | 91快播视频在线观看| 1000部国产精品成人观看视频| 中文字幕在线欧美精品| 精品一区二区三区三区88| 东京干手机福利视频| 超污视频在线观看污污污| 2020中文字幕在线播放| 亚洲福利午夜久久久精品电影网| 欧美专区日韩专区国产专区| 午夜毛片不卡免费观看视频| 超级碰碰在线视频免费观看| 国产V亚洲V天堂无码欠欠| 一本久久精品一区二区| 日韩美女搞黄视频免费| 激情色图一区二区三区| 中国视频一区二区三区| 国产极品美女久久久久久| av一区二区三区人妻| 亚洲变态另类色图天堂网| 国产中文字幕四区在线观看| 天天日天天舔天天射进去| 涩涩的视频在线观看视频| 99国产精品窥熟女精品| 色婷婷久久久久swag精品| 风流唐伯虎电视剧在线观看| 欧洲亚洲欧美日韩综合| 欧美国产亚洲中英文字幕| 国产av欧美精品高潮网站| 在线可以看的视频你懂的| 国产亚洲成人免费在线观看| 最新黄色av网站在线观看| 自拍偷拍日韩欧美一区二区| 国产成人精品福利短视频| 天天操天天爽天天干| 国产chinesehd精品麻豆| 动色av一区二区三区| 人妻无码色噜噜狠狠狠狠色| 孕妇奶水仑乱A级毛片免费看| huangse网站在线观看| 在线观看的黄色免费网站| 韩国爱爱视频中文字幕| 男人天堂最新地址av| 亚洲1069综合男同| 久久精品视频一区二区三区四区 | 福利片区一区二体验区| 中文字幕人妻一区二区视频| 久久久久久9999久久久久| 天天干天天操天天扣| 自拍偷拍亚洲欧美在线视频| 久久久久久性虐视频| 搡老妇人老女人老熟女| 国产精品自拍在线视频| 一区二区三区av高清免费| 女生被男生插的视频网站| 亚洲国产欧美国产综合在线| 一级黄片久久久久久久久| 国产精品久久久久久久精品视频 | 免费在线福利小视频| 888欧美视频在线| 日本性感美女三级视频| 欧美中国日韩久久精品| 亚洲精品ww久久久久久| 一区二区三区国产精选在线播放| 青青青青青青草国产| 日视频免费在线观看| 中文字幕人妻av在线观看| 欧美日韩精品永久免费网址 | 高清成人av一区三区| 天天日天天操天天摸天天舔| 日韩影片一区二区三区不卡免费| 日日摸夜夜添夜夜添毛片性色av| 可以在线观看的av中文字幕| 不卡精品视频在线观看| 2021久久免费视频| 久久精品国产999| 在线亚洲天堂色播av电影| 亚洲一区二区人妻av| 亚洲狠狠婷婷综合久久app| 国产精品黄色的av| yy6080国产在线视频| 国产综合高清在线观看| 不卡日韩av在线观看| 成人福利视频免费在线| 亚洲免费福利一区二区三区| 只有精品亚洲视频在线观看| japanese日本熟妇另类| 91麻豆精品秘密入口在线观看| 在线可以看的视频你懂的| 黄色无码鸡吧操逼视频| 国产a级毛久久久久精品| 三级黄色亚洲成人av| 天天躁夜夜躁日日躁a麻豆| 日韩欧美国产一区ab| 老司机福利精品免费视频一区二区| 日韩av大胆在线观看| 日日日日日日日日夜夜夜夜夜夜| 男人在床上插女人视频| 日韩精品中文字幕福利| 欧美精品伦理三区四区| 日本熟女50视频免费| 成人国产激情自拍三区| 99一区二区在线观看| 亚洲天天干 夜夜操| 啊啊好大好爽啊啊操我啊啊视频| 丝袜肉丝一区二区三区四区在线| 亚洲天天干 夜夜操| 亚洲国产成人在线一区| 最新欧美一二三视频 | 精品视频一区二区三区四区五区| 经典av尤物一区二区| 91 亚洲视频在线观看| 姐姐的朋友2在线观看中文字幕 | 亚洲天堂第一页中文字幕| 青青青国产片免费观看视频| 国产 在线 免费 精品| 2018最新中文字幕在线观看| 国产中文精品在线观看| 日韩熟女av天堂系列| 天天日天天干天天插舔舔| 精品国产午夜视频一区二区| 亚洲国产欧美一区二区三区…| 国产使劲操在线播放| 爱爱免费在线观看视频| 中文字幕亚洲中文字幕| 日本精品一区二区三区在线视频。| 美女 午夜 在线视频| 中国黄片视频一区91| 日韩亚国产欧美三级涩爱| 色吉吉影音天天干天天操 | av在线播放国产不卡| av成人在线观看一区| 日本一区美女福利视频| 久久这里有免费精品| brazzers欧熟精品系列| 大屁股肉感人妻中文字幕在线| 午夜dv内射一区区| 日本免费视频午夜福利视频| 97人妻色免费视频| 午夜极品美女福利视频| 日韩av有码中文字幕| brazzers欧熟精品系列| 日韩美av高清在线| 成人av中文字幕一区| 精品成人午夜免费看| 国产不卡av在线免费| 日本后入视频在线观看| 天堂av在线播放免费| 日韩av有码一区二区三区4| 好男人视频在线免费观看网站| 18禁网站一区二区三区四区| jiuse91九色视频| 中文字幕1卡1区2区3区| 国产女孩喷水在线观看| 欧美特级特黄a大片免费| 视频 国产 精品 熟女 | 色婷婷六月亚洲综合香蕉| 人人妻人人爱人人草| 精品成人午夜免费看| 欧美乱妇无乱码一区二区| 婷婷久久久久深爱网| 天天摸天天亲天天舔天天操天天爽| 国产亚洲天堂天天一区| 天天射夜夜操综合网| 国产一区成人在线观看视频| 日本丰满熟妇BBXBBXHD| 国产91久久精品一区二区字幕| 亚洲欧美福利在线观看| 天天综合天天综合天天网| 日本韩国亚洲综合日韩欧美国产| 狠狠躁夜夜躁人人爽天天天天97| 欧美日韩亚洲国产无线码| 老熟妇xxxhd老熟女| 扒开腿挺进肉嫩小18禁视频| 91香蕉成人app下载| 精品国产高潮中文字幕| 亚洲国际青青操综合网站| 少妇一区二区三区久久久| 蜜桃专区一区二区在线观看| av手机在线观播放网站| 婷婷激情四射在线观看视频| 人妻少妇一区二区三区蜜桃| 亚洲av日韩精品久久久久久hd| 欧美麻豆av在线播放| 亚洲欧美久久久久久久久| 93精品视频在线观看| 亚洲精品一线二线在线观看| 国产乱子伦精品视频潮优女| 天天日夜夜操天天摸| 大白屁股精品视频国产| 美女操逼免费短视频下载链接 | 瑟瑟视频在线观看免费视频| 黄色视频成年人免费观看| 日本人竟这样玩学生妹| 日本熟妇喷水xxx| av日韩在线观看大全| 欧美日韩不卡一区不区二区| 亚洲 图片 欧美 图片| 91色秘乱一区二区三区| 国产乱子伦精品视频潮优女| 亚洲欧美国产麻豆综合| 国产午夜无码福利在线看| 亚洲综合另类欧美久久| 激情国产小视频在线| 久草极品美女视频在线观看| 日本韩国在线观看一区二区| 97超碰人人搞人人| 黄网十四区丁香社区激情五月天 | 中文字幕日韩精品日本| 91超碰青青中文字幕| 午夜毛片不卡免费观看视频 | 晚上一个人看操B片| 宅男噜噜噜666国产| 一个人免费在线观看ww视频| 老鸭窝日韩精品视频观看| 在线播放一区二区三区Av无码| 91香蕉成人app下载| 午夜免费体验区在线观看| 水蜜桃一区二区三区在线观看视频| 国产精品精品精品999| 91精品国产麻豆国产| 91免费放福利在线观看| 欧美精品伦理三区四区| 毛茸茸的大外阴中国视频| 亚洲 中文字幕在线 日韩| 顶级尤物粉嫩小尤物网站| 亚洲麻豆一区二区三区| 国产精品系列在线观看一区二区| av手机免费在线观看高潮| 少妇系列一区二区三区视频| 中文字幕一区二 区二三区四区| 日本在线不卡免费视频| 啊啊好大好爽啊啊操我啊啊视频| 快点插进来操我逼啊视频| 精品一线二线三线日本| 午夜av一区二区三区| 色综合久久久久久久久中文| 青青青视频自偷自拍38碰| av亚洲中文天堂字幕网| 久久久超爽一二三av| 夫妻在线观看视频91| 护士特殊服务久久久久久久| 1000部国产精品成人观看视频| 99精品免费久久久久久久久a| 欧美乱妇无乱码一区二区| 一二三中文乱码亚洲乱码one| 久久99久久99精品影院| 我想看操逼黄色大片| 91免费黄片可看视频| 黄色大片免费观看网站| 亚洲国产精品中文字幕网站| 精品美女在线观看视频在线观看| av天堂中文字幕最新| 青青青青视频在线播放| 激情五月婷婷免费视频| 天天色天天舔天天射天天爽 | 国产日韩精品电影7777| 亚洲av日韩av网站| 国产a级毛久久久久精品| 黑人借宿ntr人妻的沦陷2| 99热这里只有精品中文| 亚洲av自拍偷拍综合| 成人在线欧美日韩国产| 91精品国产麻豆国产| 播放日本一区二区三区电影| 人妻熟女中文字幕aⅴ在线| 97国产精品97久久| 国产使劲操在线播放| 色综合色综合色综合色| 久久久久久久亚洲午夜综合福利| 天天日天天爽天天爽| 91www一区二区三区| 97人人妻人人澡人人爽人人精品| 久久久久久久久久性潮| av一区二区三区人妻| 2020国产在线不卡视频 | 国产+亚洲+欧美+另类| 久久精品视频一区二区三区四区 | 少妇与子乱在线观看| 一区二区三区日本伦理| 视频一区 视频二区 视频| 美味人妻2在线播放| 欧美亚洲自偷自拍 在线| 成人亚洲国产综合精品| 欧美80老妇人性视频| 国产中文精品在线观看| av男人天堂狠狠干| 国产av国片精品一区二区| 99久久久无码国产精品性出奶水| 天堂av狠狠操蜜桃| 欧美国品一二三产区区别 | okirakuhuhu在线观看| 欧美亚洲少妇福利视频| 播放日本一区二区三区电影| 成人区人妻精品一区二视频| 亚洲中文字幕人妻一区| 男女第一次视频在线观看| 红杏久久av人妻一区| 任你操任你干精品在线视频| wwwxxx一级黄色片| 91九色国产熟女一区二区| caoporm超碰国产| 免费啪啪啪在线观看视频| 国产黄色片蝌蚪九色91| 久久久久五月天丁香社区| 久久久久久国产精品| 在线免费91激情四射| 日韩一个色综合导航| 亚洲卡1卡2卡三卡四老狼| 人妻丝袜av在线播放网址| 亚洲av日韩高清hd| 精品久久久久久久久久久99| 天天做天天干天天舔| 亚洲国产美女一区二区三区软件| 精品一区二区三区在线观看| 综合精品久久久久97| 激情人妻校园春色亚洲欧美| wwwxxx一级黄色片| 欧美久久久久久三级网| 欧美精品伦理三区四区| 久草电影免费在线观看| 午夜精品亚洲精品五月色| 熟女妇女老妇一二三区| 免费在线黄色观看网站| 午夜美女福利小视频| 亚洲av无硬久久精品蜜桃| 日韩人妻在线视频免费| eeuss鲁片一区二区三区| 超碰97人人澡人人| 久青青草视频手机在线免费观看| 五色婷婷综合狠狠爱| 老熟妇凹凸淫老妇女av在线观看| 狠狠的往里顶撞h百合| 欧洲日韩亚洲一区二区三区| 欧美一区二区三区激情啪啪啪| 少妇人妻二三区视频| 国产高清精品一区二区三区| 亚洲人妻30pwc| 中文字幕日韩人妻在线三区| 成年人的在线免费视频| 欧美视频一区免费在线| 亚洲中文精品人人免费| 人妻久久无码中文成人| 日韩美女福利视频网| 精品视频一区二区三区四区五区| 精品国产污污免费网站入口自 | 美女av色播在线播放| 久久精品久久精品亚洲人| 好了av中文字幕在线| 国产午夜男女爽爽爽爽爽视频 | 精品av国产一区二区三区四区| 久久精品国产999| 中文字幕熟女人妻久久久| 美女日逼视频免费观看| 色花堂在线av中文字幕九九| 五月天久久激情视频| 三级av中文字幕在线观看| 美女张开两腿让男人桶av| 涩爱综合久久五月蜜臀| 日韩欧美在线观看不卡一区二区| 欧美黑人巨大性xxxxx猛交| 经典亚洲伊人第一页| 欧美老妇精品另类不卡片| 国产精品日韩欧美一区二区| 2020国产在线不卡视频| 国产黄色a级三级三级三级| 中国产一级黄片免费视频播放| 噜噜色噜噜噜久色超碰| 国产精彩对白一区二区三区| 少妇被强干到高潮视频在线观看 | 天堂av狠狠操蜜桃| 天天干天天操天天爽天天摸| 五月色婷婷综合开心网4438| 视频在线免费观看你懂得| 久久热久久视频在线观看| 亚洲粉嫩av一区二区三区| 动漫av网站18禁| 日韩精品一区二区三区在线播放| 亚洲国产欧美一区二区三区久久| 黄色录像鸡巴插进去| 国产精品自拍偷拍a| 天天草天天色天天干| 亚洲熟妇x久久av久久| 天天操天天干天天日狠狠插| 欧美成人黄片一区二区三区 | 少妇被强干到高潮视频在线观看| 粉嫩欧美美人妻小视频| 亚洲国产精品免费在线观看| av一本二本在线观看| 欧亚日韩一区二区三区观看视频| 91色九色porny| 啊啊啊视频试看人妻| 欧美一区二区三区激情啪啪啪 | 熟女国产一区亚洲中文字幕| 日本av高清免费网站| 亚洲视频在线观看高清| 人人爱人人妻人人澡39| 亚洲高清国产一区二区三区| 热99re69精品8在线播放| 黄工厂精品视频在线观看| 国产1区,2区,3区| 99热碰碰热精品a中文| 天堂av在线播放免费| 成人乱码一区二区三区av| 91在线免费观看成人| 美味人妻2在线播放| 夜色撩人久久7777| 性欧美激情久久久久久久| 亚洲av午夜免费观看| 一二三中文乱码亚洲乱码one| 免费高清自慰一区二区三区网站| 97瑟瑟超碰在线香蕉| 一区二区三区麻豆福利视频| 自拍偷拍亚洲另类色图| 亚洲Av无码国产综合色区| 夜色撩人久久7777| 久久久久久久久久久免费女人| 一区二区三区日本伦理| 亚洲精品久久视频婷婷| 一二三区在线观看视频| 久久农村老妇乱69系列| 一区二区三区四区视频| 日韩精品二区一区久久| 2021最新热播中文字幕| 丰满少妇翘臀后进式| 亚洲一区自拍高清免费视频| 日美女屁股黄邑视频| 免费69视频在线看| 色婷婷综合激情五月免费观看| 国产超码片内射在线| 日本一道二三区视频久久| 蜜桃臀av蜜桃臀av| 国产成人一区二区三区电影网站| 视频在线亚洲一区二区| 小泽玛利亚视频在线观看| 欧美日韩v中文在线| av在线观看网址av| 天堂中文字幕翔田av| 社区自拍揄拍尻屁你懂的| 精品国产亚洲av一淫| av黄色成人在线观看| 国产在线拍揄自揄视频网站| 午夜精品一区二区三区福利视频| 亚洲成人免费看电影| 日本高清撒尿pissing| jiujiure精品视频在线| 又粗又硬又猛又爽又黄的| 综合色区亚洲熟妇shxstz| 蜜桃精品久久久一区二区| 亚洲国产欧美一区二区丝袜黑人| 午夜频道成人在线91| 1000部国产精品成人观看视频| 精品久久婷婷免费视频| 亚洲女人的天堂av| 中文字幕在线欧美精品| 伊拉克及约旦宣布关闭领空| 天天夜天天日天天日| 大屁股熟女一区二区三区| 亚洲伊人色一综合网| 欧美精品国产综合久久| av在线观看网址av| av在线免费观看亚洲天堂| 美女吃鸡巴操逼高潮视频| 人妻少妇性色欲欧美日韩| 中文字幕日韩精品日本| 91色九色porny| 天天操天天操天天碰| 91国内视频在线观看| 老司机在线精品福利视频| 中文 成人 在线 视频| 男生舔女生逼逼的视频| 欧美老妇精品另类不卡片| 免费av岛国天堂网站| 免费看高清av的网站| 91高清成人在线视频| 五十路av熟女松本翔子| 青青青青视频在线播放| 伊人精品福利综合导航| 91免费观看国产免费| 日韩成人综艺在线播放| 任你操视频免费在线观看| 青青青视频手机在线观看| 日本高清成人一区二区三区| 天堂女人av一区二区| 青青青激情在线观看视频| av一区二区三区人妻| 成人精品视频99第一页| 999九九久久久精品| 97成人免费在线观看网站| 青青伊人一精品视频| 色呦呦视频在线观看视频| 久精品人妻一区二区三区| 91九色porny国产在线| 欧美日韩高清午夜蜜桃大香蕉| 91超碰青青中文字幕| 大鸡八强奸视频在线观看| 欧美精品亚洲精品日韩在线| 欧美成人黄片一区二区三区 | 成年美女黄网站18禁久久| 最近中文2019年在线看| 欧美久久一区二区伊人| 2019av在线视频| 日本女大学生的黄色小视频| 亚洲精品色在线观看视频| 国产午夜福利av导航| 国产一级麻豆精品免费| 天天干天天操天天爽天天摸| 免费在线看的黄片视频| 日本一区二区三区免费小视频| 不卡精品视频在线观看| 精品一区二区三区午夜| 久久人人做人人妻人人玩精品vr| 精品亚洲在线免费观看| 国产熟妇一区二区三区av| 国产精品人久久久久久| 91亚洲手机在线视频播放| 91av精品视频在线| 在线观看免费岛国av| 国产清纯美女al在线| 亚洲 国产 成人 在线| www久久久久久久久久久| 蜜桃专区一区二区在线观看| 亚洲专区激情在线观看视频| 在线免费观看99视频| av中文在线天堂精品| rct470中文字幕在线| 亚洲人一区二区中文字幕| 77久久久久国产精产品| 视频二区在线视频观看| 内射久久久久综合网| 国产之丝袜脚在线一区二区三区| 天天插天天色天天日| 五月精品丁香久久久久福利社| 国产在线拍揄自揄视频网站| 日本熟女50视频免费| 影音先锋女人av噜噜色| 色综合天天综合网国产成人| 2017亚洲男人天堂| 亚洲高清视频在线不卡| 51国产偷自视频在线播放| 日韩欧美一级黄片亚洲| 天堂女人av一区二区| 人妻少妇精品久久久久久 | asmr福利视频在线观看| 精品一区二区三区三区88| 好吊视频—区二区三区| 亚洲人妻国产精品综合| 阴茎插到阴道里面的视频| 极品丝袜一区二区三区| 激情啪啪啪啪一区二区三区| 欧美成人精品欧美一级黄色| 18禁美女羞羞免费网站| 国产女人露脸高潮对白视频| 国产精品人妻66p| 亚洲 中文 自拍 另类 欧美| 国产视频精品资源网站| 欧美成一区二区三区四区| 一区二区熟女人妻视频| 女同互舔一区二区三区| 中国把吊插入阴蒂的视频| 男生舔女生逼逼视频| 午夜蜜桃一区二区三区| 亚洲av在线观看尤物| 亚洲超碰97人人做人人爱| 亚洲欧美一区二区三区电影| 欧美精品欧美极品欧美视频 | 精内国产乱码久久久久久| 免费在线观看视频啪啪| 精品亚洲国产中文自在线| 激情啪啪啪啪一区二区三区| 精品一区二区三区午夜| 中文字幕人妻三级在线观看| 美女福利视频导航网站 | 久久精品国产999| 任你操视频免费在线观看| 亚洲人妻国产精品综合| 亚洲美女高潮喷浆视频| 亚洲欧美激情国产综合久久久| 老司机午夜精品视频资源 | 国产之丝袜脚在线一区二区三区 | 午夜dv内射一区区| 含骚鸡巴玩逼逼视频| 亚洲成人午夜电影在线观看| 黄色资源视频网站日韩| 久久丁香婷婷六月天| 中文字幕最新久久久| 欧美日韩精品永久免费网址| 五月天色婷婷在线观看视频免费| 青青热久免费精品视频在线观看| 99精品视频在线观看婷婷| 午夜蜜桃一区二区三区| 69精品视频一区二区在线观看| 自拍偷拍,中文字幕| 免费成人av中文字幕| 红杏久久av人妻一区| 最近中文2019年在线看| 一区二区熟女人妻视频| 天天干天天操天天扣| 日韩一区二区电国产精品| 大学生A级毛片免费视频| wwwxxx一级黄色片| 四川乱子伦视频国产vip| 在线视频精品你懂的| 涩涩的视频在线观看视频| 国产一区自拍黄视频免费观看 | 免费看国产又粗又猛又爽又黄视频| 中文字幕欧美日韩射射一| 青青草原网站在线观看| 黄工厂精品视频在线观看| 亚洲成人av在线一区二区| rct470中文字幕在线| 成人精品视频99第一页| 成年人午夜黄片视频资源| 亚洲国产成人av在线一区| 被大鸡吧操的好舒服视频免费| 亚洲国产欧美一区二区三区久久 | 蜜桃视频17c在线一区二区| 日本高清成人一区二区三区| 欧美日本aⅴ免费视频| 久久国产精品精品美女| 亚洲激情唯美亚洲激情图片| 成人激情文学网人妻| 国产成人精品一区在线观看| 欧美成人综合视频一区二区 | 久久麻豆亚洲精品av| 人人超碰国字幕观看97| 精品成人午夜免费看| 91老师蜜桃臀大屁股| 午夜精品福利91av| 成人在线欧美日韩国产| 国产无遮挡裸体免费直播视频| 亚洲欧美精品综合图片小说| 伊人网中文字幕在线视频| 老师让我插进去69AV| 亚洲成人黄色一区二区三区 | gay gay男男瑟瑟在线网站| 国产精品成久久久久三级蜜臀av| 一区二区三区视频,福利一区二区 丰满的子国产在线观看 | 天堂av在线最新版在线| 亚洲激情偷拍一区二区| 啊用力插好舒服视频| 午夜精品一区二区三区城中村| 国产高清在线在线视频| 男生舔女生逼逼视频| 亚洲激情唯美亚洲激情图片| 黄色在线观看免费观看在线| 亚洲天堂有码中文字幕视频| 免费成人va在线观看| 91she九色精品国产| 欧美viboss性丰满| 中文字幕 人妻精品| 亚洲最大免费在线观看| 美女操逼免费短视频下载链接| 天天干天天日天天谢综合156| 91久久精品色伊人6882| 久久久久久性虐视频| 免费黄高清无码国产| 亚洲av极品精品在线观看| 欧美成人一二三在线网| 色综合久久无码中文字幕波多| 中文字幕av男人天堂| 欧美视频一区免费在线| 社区自拍揄拍尻屁你懂的| 丰满熟女午夜福利视频| 狠狠操狠狠操免费视频| yy6080国产在线视频| 91高清成人在线视频| 不卡精品视频在线观看| 亚洲男人的天堂a在线| 亚洲一区二区激情在线| 国产又粗又猛又爽又黄的视频在线| 日本福利午夜电影在线观看| 91色老99久久九九爱精品| sejizz在线视频| 日韩北条麻妃一区在线| 精品av久久久久久久| 3337p日本欧洲大胆色噜噜| 青青草精品在线视频观看| 亚洲美女美妇久久字幕组| 97精品视频在线观看| 边摸边做超爽毛片18禁色戒 | 中文字幕在线一区精品| 老司机午夜精品视频资源| 精品久久久久久久久久久久人妻| 亚洲一区二区激情在线| 青青青青青青青青青国产精品视频| 韩国AV无码不卡在线播放| 国产在线免费观看成人| 亚洲粉嫩av一区二区三区| 青青青青视频在线播放| 三级等保密码要求条款| 欧美另类重口味极品在线观看| 欧美伊人久久大香线蕉综合| 欧美日本在线观看一区二区| 亚洲欧美国产麻豆综合| 欧美日韩中文字幕欧美| 中文字幕av男人天堂| 欧美精品伦理三区四区| 九色精品视频在线播放| av网站色偷偷婷婷网男人的天堂| 亚洲午夜在线视频福利| 中文字幕乱码人妻电影| 东游记中文字幕版哪里可以看到| 91一区精品在线观看| 亚洲精品乱码久久久本| 2020国产在线不卡视频| 欧美久久一区二区伊人| 免费在线播放a级片| 无套猛戳丰满少妇人妻 | 欧美一区二区三区激情啪啪啪| 偷拍美女一区二区三区| 青青青视频自偷自拍38碰| 国产三级影院在线观看| 3337p日本欧洲大胆色噜噜| 久久人人做人人妻人人玩精品vr| 色哟哟国产精品入口| 中文字幕无码一区二区免费| 51精品视频免费在线观看| 香蕉片在线观看av| 国产成人精品久久二区91| 久青青草视频手机在线免费观看| 超污视频在线观看污污污| 91免费福利网91麻豆国产精品| 欧美性受xx黑人性猛交| 青青在线视频性感少妇和隔壁黑丝| 一区二区三区激情在线| 免费观看国产综合视频| 中文字幕之无码色多多| 国产成人自拍视频在线免费观看| 天天射夜夜操综合网| av破解版在线观看| 熟妇一区二区三区高清版| 欧美亚洲偷拍自拍色图| 美女福利视频网址导航| 在线观看欧美黄片一区二区三区| 老司机免费视频网站在线看| 东京干手机福利视频| 久久农村老妇乱69系列| 日本成人不卡一区二区| 欧美精品伦理三区四区| 91国产资源在线视频| 国产日本欧美亚洲精品视| 人妻少妇亚洲一区二区| 在线观看的黄色免费网站| 成年女人免费播放视频| 视频久久久久久久人妻| 欧美精品中文字幕久久二区| 青娱乐最新视频在线| 一区二区三区视频,福利一区二区| 2018在线福利视频| 天天日天天爽天天干| 97国产在线av精品| av网址在线播放大全| 99国内精品永久免费视频| 任你操任你干精品在线视频| 成年美女黄网站18禁久久| 亚洲精品麻豆免费在线观看| 国产精品成久久久久三级蜜臀av| 国产亚洲成人免费在线观看| 日本高清在线不卡一区二区| 天天干天天操天天爽天天摸| av在线播放国产不卡| v888av在线观看视频| 啊用力插好舒服视频| 五月婷婷在线观看视频免费| 精品视频一区二区三区四区五区| 亚洲va国产va欧美va在线| 国产黑丝高跟鞋视频在线播放| 国产成人综合一区2区| 在线免费观看国产精品黄色| 亚洲综合在线观看免费| 中文 成人 在线 视频| 亚洲成人黄色一区二区三区| 亚洲狠狠婷婷综合久久app| 国产精品久久久久网| 999久久久久999| 精品av国产一区二区三区四区| 亚洲伊人色一综合网| 亚洲国产欧美国产综合在线| 中文字幕人妻熟女在线电影| 一二三中文乱码亚洲乱码one| 免费观看丰满少妇做受| 全国亚洲男人的天堂| 91中文字幕最新合集| 黄色的网站在线免费看| 懂色av蜜桃a v| 888欧美视频在线| 日日日日日日日日夜夜夜夜夜夜| 综合色区亚洲熟妇shxstz| 少妇人妻二三区视频 | 第一福利视频在线观看 | 国产成人小视频在线观看无遮挡 | 亚洲国产成人最新资源| 综合精品久久久久97| 亚洲欧美清纯唯美另类| 这里有精品成人国产99| 色婷婷六月亚洲综合香蕉| 日本a级视频老女人| 亚洲成人情色电影在线观看| 人妻少妇精品久久久久久 | 午夜精品一区二区三区更新| 欧美亚洲国产成人免费在线| 亚洲在线一区二区欧美| 青青青青在线视频免费观看| 女蜜桃臀紧身瑜伽裤| 亚洲中文字幕综合小综合| 日韩国产乱码中文字幕| 中文字幕奴隷色的舞台50| 天天做天天爽夜夜做少妇| 免费在线观看污污视频网站| 自拍偷拍亚洲精品第2页| 欧美国产亚洲中英文字幕| 阴茎插到阴道里面的视频| 人妻少妇一区二区三区蜜桃| 亚洲成人国产综合一区| 人妻丰满熟妇综合网| 亚洲综合一区成人在线| 久久久久久cao我的性感人妻| 精品美女久久久久久| 亚洲中文精品字幕在线观看| 国产精品一区二区三区蜜臀av | 成年人免费看在线视频| 亚洲国产欧美一区二区丝袜黑人| 阴茎插到阴道里面的视频| 狠狠的往里顶撞h百合| 国产第一美女一区二区三区四区| 国产高清97在线观看视频| 日本性感美女三级视频| 宅男噜噜噜666国产| 在线观看成人国产电影| 精品suv一区二区69| 黄色在线观看免费观看在线| 午夜场射精嗯嗯啊啊视频| 视频 国产 精品 熟女 | 福利视频广场一区二区| 硬鸡巴动态操女人逼视频| 99亚洲美女一区二区三区| 性感美女诱惑福利视频| 大香蕉玖玖一区2区| 中文字幕一区二区亚洲一区| 欧美在线精品一区二区三区视频 | 超碰在线中文字幕一区二区| 久久丁香花五月天色婷婷| 宅男噜噜噜666免费观看| 亚洲精品精品国产综合| 中文字母永久播放1区2区3区| 97成人免费在线观看网站| 日韩美女福利视频网| 乱亲女秽乱长久久久| 亚洲高清国产拍青青草原| 久久免看30视频口爆视频| 91精品综合久久久久3d动漫| 青青青青爽手机在线| 做爰视频毛片下载蜜桃视频1| 亚洲国产成人最新资源| 人人爽亚洲av人人爽av| 国产精品精品精品999| 天天操天天弄天天射| 美女av色播在线播放| 国产精品亚洲在线观看| 国产91嫩草久久成人在线视频| 精品乱子伦一区二区三区免费播| 大胆亚洲av日韩av| 丰满的继坶3中文在线观看| 经典国语激情内射视频| 日韩av免费观看一区| 国产成人精品av网站| 日韩欧美亚洲熟女人妻| 欧美老妇精品另类不卡片| 超碰97免费人妻麻豆| 超级碰碰在线视频免费观看| 国产麻豆91在线视频| 日本五十路熟新垣里子| 性色av一区二区三区久久久| 国产高清在线观看1区2区| av大全在线播放免费| 亚洲天堂成人在线观看视频网站| 5528327男人天堂| av一本二本在线观看| 欧美精品一区二区三区xxxx| 中文字幕+中文字幕| 午夜影院在线观看视频羞羞羞| 亚洲一级美女啪啪啪| 欧美精品一区二区三区xxxx| 欧美日韩激情啪啪啪| 国产成人自拍视频在线免费观看| 欧美成人精品在线观看| 午夜在线观看岛国av,com| 热思思国产99re| 一级黄片久久久久久久久| 国产真实灌醉下药美女av福利| 日韩欧美一级黄片亚洲| 欧美精品伦理三区四区| 日韩欧美在线观看不卡一区二区| 国产免费av一区二区凹凸四季| 亚洲欧美成人综合视频| 五十路av熟女松本翔子| 天天摸天天日天天操| 成年午夜影片国产片| 国产乱子伦一二三区| 成人精品视频99第一页| 国产精品手机在线看片| 黑人借宿ntr人妻的沦陷2| 国产成人自拍视频在线免费观看 | 高清成人av一区三区| 端庄人妻堕落挣扎沉沦| 自拍偷拍 国产资源| 精品乱子伦一区二区三区免费播| 久久久久久九九99精品| 午夜免费体验区在线观看| 粉嫩欧美美人妻小视频| 久久久人妻一区二区| 抽查舔水白紧大视频| 欧美在线偷拍视频免费看| 少妇被强干到高潮视频在线观看| 51国产偷自视频在线播放| 亚洲最大免费在线观看| 欧美亚洲国产成人免费在线| 天天操天天射天天操天天天| 日本午夜福利免费视频| 一二三中文乱码亚洲乱码one| 青青在线视频性感少妇和隔壁黑丝| 亚洲天堂成人在线观看视频网站| 国产又大又黄免费观看| 2021天天色天天干| www日韩毛片av| 天天日天天操天天摸天天舔| 一色桃子人妻一区二区三区| 热久久只有这里有精品| 一本一本久久a久久精品综合不卡| 亚洲2021av天堂| 乱亲女秽乱长久久久| 黄色无码鸡吧操逼视频| 午夜精品在线视频一区| 91久久人澡人人添人人爽乱| 日本少妇人妻xxxxx18| 一个色综合男人天堂| 一区二区三区av高清免费| 精品人妻伦一二三区久 | 亚洲天堂av最新网址| 任你操任你干精品在线视频| 熟女91pooyn熟女| 亚洲欧美国产综合777| 久久久久久9999久久久久| 亚洲精品午夜久久久久| 黄色在线观看免费观看在线| 久久永久免费精品人妻专区| 亚洲男人的天堂a在线| 在线观看日韩激情视频| 日本韩国亚洲综合日韩欧美国产 | 馒头大胆亚洲一区二区| 九色视频在线观看免费| 青娱乐最新视频在线| 黄色成年网站午夜在线观看 | 天天色天天舔天天射天天爽| 国产精品人久久久久久| 喷水视频在线观看这里只有精品| 国产福利在线视频一区| 天天干天天操天天扣| 性生活第二下硬不起来| 粗大的内捧猛烈进出爽大牛汉子| 狠狠的往里顶撞h百合| 91欧美在线免费观看| 色av色婷婷人妻久久久精品高清| 成人av免费不卡在线观看| 国产剧情演绎系列丝袜高跟| 日本免费午夜视频网站| 成年人该看的视频黄免费| 午夜大尺度无码福利视频| 视频一区 视频二区 视频| 嫩草aⅴ一区二区三区| 中文字幕日韩人妻在线三区| 人妻最新视频在线免费观看| 国产综合精品久久久久蜜臀| 国产一区二区欧美三区| 日比视频老公慢点好舒服啊| 一色桃子人妻一区二区三区| 亚洲精品ww久久久久久| 亚洲欧美精品综合图片小说| 曰本无码人妻丰满熟妇啪啪| 中文字幕一区的人妻欧美日韩| av一区二区三区人妻| 2022中文字幕在线| 在线国产中文字幕视频| 日韩欧美国产精品91| 97超碰国语国产97超碰| 青草青永久在线视频18| 在线观看视频 你懂的| 91福利视频免费在线观看| 日本特级片中文字幕| 亚洲卡1卡2卡三卡四老狼| aⅴ精产国品一二三产品| 久久美欧人妻少妇一区二区三区| 亚洲欧洲av天堂综合| 日本黄色特一级视频| 久久精品国产23696| 在线播放一区二区三区Av无码| av破解版在线观看| 国产女人被做到高潮免费视频| 五月精品丁香久久久久福利社| 色偷偷伊人大杳蕉综合网| 又色又爽又黄的美女裸体| 国产janese在线播放| 91试看福利一分钟| 好太好爽好想要免费| 欧美地区一二三专区| 精内国产乱码久久久久久| 国产精品伦理片一区二区| 国际av大片在线免费观看| 不卡精品视频在线观看| 色吉吉影音天天干天天操| 91九色国产熟女一区二区| 国产精品午夜国产小视频| 大尺度激情四射网站| 国产美女精品福利在线| 中文字幕av一区在线观看| 早川濑里奈av黑人番号| 午夜国产免费福利av| ka0ri在线视频| 久久亚洲天堂中文对白| 亚洲精品国偷自产在线观看蜜桃| 黄片三级三级三级在线观看| 国产精品国色综合久久| 天天想要天天操天天干| 东京热男人的av天堂| 精品人妻伦一二三区久| 欧美精品国产综合久久| 动漫美女的小穴视频| 免费在线福利小视频| 亚洲国产成人最新资源| 深田咏美亚洲一区二区| 亚洲老熟妇日本老妇| 阴茎插到阴道里面的视频| 偷拍自拍 中文字幕| 色综合天天综合网国产成人| 岛国黄色大片在线观看| 在线观看的黄色免费网站| 成年人免费看在线视频| 老司机深夜免费福利视频在线观看| 欧美日韩一级黄片免费观看| 黄色的网站在线免费看| 欧美视频不卡一区四区| 1区2区3区不卡视频|