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

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

php的xml分析函數

瀏覽:4日期:2024-02-14 08:48:26

首先我得承認我喜歡計算機標準。如果每個人都遵從這個行業的標準,互聯網將會是一個更好的媒體。使用標準化的數據交換格式才能使開放的和獨立于平臺的計算模式切實可行。這就是我作為XML愛好者的原因。

幸運的是,我最喜愛的腳本語言不但支持XML而且對其支持正不斷加強。PHP可以讓我迅速將XML文檔發布到互聯網上,收集XML文檔的統計信息,將XML文檔轉換成其它格式。例如,我時常用PHP的XML處理能力來管理我用XML所寫的文章和書。

本文中,我將討論任何用PHP內建的Expat解析器來處理XML文檔。通過范例,我將演示Expat的處理方法。同時,范例可以告訴你如何:

建立你自己的處理函數; 將XML文檔轉換成你自己的PHP數據結構

介紹Expat

XML的解析器,同樣稱為XML處理器,可以使程序訪問XML文檔的結構和內容。Expat是PHP腳本語言的XML解析器。它同時也運用在其它項目中,例如Mozilla、Apache和Perl。

什么是基于事件的解析器?

XML解析器的兩種基本類型:

基于樹型的解析器:將XML文檔轉換成樹型結構。這類解析器分析整篇文章,同時提供一個API來訪問所產生樹的每個元素。其通用的標準為DOM(文檔對象模式)。; 基于事件的解析器:將XML文檔視為一系列的事件。當一個特殊事件發生時,解析器將調用開發者提供的函數來處理。; 基 于事件的解析器有一個XML文檔的數據集中視圖,也就是說它集中在XML文檔的數據部分,而不是其結構。這些解析器從頭到尾處理文檔,并將類似于-元素的 開始、元素的結尾、特征數據的開始等等-事件通過回調(callback)函數報告給應用程序。以下是一個'Hello-World'的XML文檔范例:

<greeting>Hello World; </greeting>

基于事件的解析器將報告為三個事件:

開始元素:greeting; CDATA項的開始,值為:Hello World; 結束元素:greeting; 不像基于樹型的解析器,基于事件的解析器不產生描述文檔的結構。在CDATA項中,基于事件的解析器不會讓你得到父元素greeting的信息。 然而,它提供一個更底層的訪問,這就使得可以更好地利用資源和更快地訪問。通過這種方式,就沒有必要將整個文檔放入內存;而事實上,整個文檔甚至可以大于實際內存值。

Expat就是這樣的一種基于事件的解析器。當然如果使用Expat,必要時它一樣可以在PHP中生成完全的原生樹結構。

上面Hello-World的范例包括完整的XML格式。但它是無效的,因為既沒有DTD(文檔類型定義)與其聯系,也沒有內嵌DTD。

對于Expat,這并沒有區別:Expat是一個不檢查有效性的解析器,因此忽略任何與文檔聯系的DTD。但應注意的是文檔仍然需要完整的格式,否則Expat(和其他符合XML標準的解析器一樣)將會隨著出錯信息而停止。

作為不檢查有效性的解析器,Exapt的快速性和輕巧性使其十分適合互聯網程序。

編譯Expat

Expat可以編譯進PHP3.0.6版本(或以上)中。從Apache1.3.9開始,Expat已經作為Apache的一部分。在Unix系統中,通過-with-xml選項配置PHP,你可以將其編譯入PHP。

如果你將PHP編譯為Apache的模塊,而Expat將默認作為Apache的一部分。在Windows中,你則必須要加載XML動態連接庫。

XML范例:XMLstats

了解Expat的函數的一個辦法就是通過范例。我們所要討論的范例是使用Expat來收集XML文檔的統計數據。

對于文檔中每個元素,以下信息都將被輸出:

該元素在文檔中使用的次數; 該元素中字符數據的數量; 元素的父元素; 元素的子元素; 注意:為了演示,我們利用PHP來產生一個結構來保存元素的父元素和子元素

準備

用 于產生XML解析器實例的函數為xml_parser_create()。該實例將用于以后的所有函數。這個思路非常類似于PHP中MySQL函數的連接 標記。在解析文檔前,基于事件的解析器通常要求你注冊回調函數-用于特定的事件發生時調用。Expat沒有例外事件,它定義了如下七個可能事件:

對象 XML解析函數 描述

元素 xml_set_element_handler() 元素的開始和結束

字符數據 xml_set_character_data_handler() 字符數據的開始

外部實體 xml_set_external_entity_ref_handler() 外部實體出現

未解析外部實體 xml_set_unparsed_entity_decl_handler() 未解析的外部實體出現

處理指令 xml_set_processing_instruction_handler() 處理指令的出現

記法聲明 xml_set_notation_decl_handler() 記法聲明的出現

默認 xml_set_default_handler() 其它沒有指定處理函數的事件

所有的回調函數必須將解析器的實例作為其第一個參數(此外還有其它參數)。

對于本文最后的范例腳本。你需要注意的是它既用到了元素處理函數又用到了字符數據處理函數。元素的回調處理函數通過xml_set_element_handler()來注冊。

這個函數需要三個參數:

解析器的實例; 處理開始元素的回調函數的名稱; 處理結束元素的回調函數的名稱; 當開始解析XML文檔時,回調函數必須存在。它們必須定義為與PHP手冊中所描述的原型一致。

例如,Expat將三個參數傳遞給開始元素的處理函數。在腳本范例中,其定義如下:

function start_element($parser, $name, $attrs);

第一個參數是解析器標示,第二個參數是開始元素的名稱,第三參數為包含元素所有屬性和值的數組。

一旦你開始解析XML文檔,Expat在遇到開始元素是都將調用你的start_element()函數并將參數傳遞過去。

XML的Case Folding選項

用xml_parser_set_option ()函數將Case folding選項關閉。這個選項默認是打開的,使得傳遞給處理函數的元素名自動轉換為大寫。但XML對大小寫是敏感的(所以大小寫對統計XML文檔是非 常重要的)。對于我們的范例,case folding選項必須關閉。

解析文檔

在完成所有的準備工作后,現在腳本終于可以解析XML文檔:

Xml_parse_from_file(),一個自定義的函數,打開參數中指定的文件,并以4kb的大小進行解析; xml_parse()和xml_parse_from_file()一樣,當發生錯誤時,即XML文檔的格式不完全時,將會返回false。; 你可以使用xml_get_error_code()函數來得到最后一個錯誤的數字代碼。將此數字代碼傳遞給xml_error_string()函數即可得到錯誤的文本信息。; 輸出XML當前的行數,使得調試更容易。; 在解析的過程中,調用回調函數。; 描述文檔結構

當解析文檔時,對于Expat需要強調問題的是:如何保持文檔結構的基本描述?

如前所述,基于事件的解析器本身并不產生任何結構信息。

不 過標簽(tag)結構是XML的重要特性。例如,元素序列<book><title>表示的意思不同于< figure><title>。也就是說,任何作者都會告訴你書名和圖名是沒有關系的,雖然它們都用到'title'這個術語。因此, 為了更有效地使用基于事件的解析器處理XML,你必須使用自己的棧(stacks)或列表(lists)來維護文檔的結構信息。

為了產生文檔結構的鏡像,腳本至少需要知道目前元素的父元素。用Exapt的API是無法實現的,它只報告目前元素的事件,而沒有任何前后關系的信息。因此,你需要建立自己的棧結構。

腳本范例使用先進后出(FILO)的棧結構。通過一個數組,棧將保存全部的開始元素。對于開始元素處理函數,目前的元素將被array_push()函數推到棧的頂部。相應的,結束元素處理函數通過array_pop()將最頂的元素移走。

對于序列<book><title></title></book>,棧的填充如下:

開始元素book:將'book'賦給棧的第一個元素($stack[0])。; 開始元素title:將'title'賦給棧的頂部($stack[1])。; 結束元素title:從棧中將最頂部的元素移去($stack[1])。; 結束元素title:從棧中將最頂部的元素移去($stack[0])。; PHP3.0通過一個$depth變量手動控制元素的嵌套來實現范例。這就使腳本看起來比較復雜。PHP4.0通過array_pop()和array_push()兩個函數來使腳本看起來更簡潔。

收集數據

為了收集每個元素的信息,腳本需要記住每個元素的事件。通過使用一個全局的數組變量$elements來保存文檔中所有不同的元素。數組的項目是元素類的實例,有4個屬性(類的變量)

$count -該元素在文檔中被發現的次數; $chars -元素中字符事件的字節數; $parents -父元素; $childs - 子元素; 正如你所看到的,將類實例保存在數組中是輕而易舉的。

注意:PHP的一個特性是你可以通過while(list() = each())loop遍歷整個類結構,如同你遍歷整個相應的數組一樣。所有的類變量(當你用PHP3.0時還有方法名)都以字符串的方式輸出。

當發現一個元素時,我們需要增加其相應的記數器來跟蹤它在文檔中出現多少次。在相應的$elements項中的記數元素也要加一。

我們同樣要讓父元素知道目前的元素是它的子元素。因此,目前元素的名稱將會加入到父元素的$childs數組的項目中。最后,目前元素應該記住誰是它的父元素。所以,父元素被加入到目前元素$parents數組的項目中。

顯示統計信息

剩下的代碼在$elements數組和其子數組中循環顯示其統計結果。這就是最簡單的嵌套循環,盡管輸出正確的結果,但代碼既不簡潔又沒有任何特別的技巧,它僅僅是一個你可能每天用他來完成工作的循環。

腳本范例被設計為通過PHP的CGI方式的命令行來調用。因此,統計結果輸出的格式為文本格式。如果你要將腳本運用到互聯網上,那么你需要修改輸出函數來產生HTML格式。

總結

Exapt是PHP的XML解析器。作為基于事件的解析器,它不產生文檔的結構描述。但通過提供底層訪問,這就使得可以更好地利用資源和更快地訪問。

作為一個不檢查有效性的解析器,Expat忽略與XML文檔連接的DTD,但如果文檔的格式不完整,它將會隨著出錯信息而停止。

提供事件處理函數來處理文檔; 建立自己的事件結構例如棧和樹來獲得XML結構信息標記的優點。; 每天都有新的XML程序出現,而PHP對XML的支持也不斷加強(例如,增加了支持基于DOM的XML解析器LibXML)。

有了PHP和Expat,你就可以為即將出現的有效、開放和獨立于平臺的標準作準備。

范例

<?; /*****************************************************************************; * 名稱:XML解析范例:XML文檔信息統計 * 描述; * 本范例通過PHP的Expat解析器收集和統計XML文檔的信息(例如:每個元素出現的次數、父元素和子元素; * XML文件作為一個參數 ./xmlstats_PHP4.php3 test.xml; * $Requires: Expat 要求:Expat PHP4.0編譯為CGI模式; *****************************************************************************/;

// 第一個參數是XML文件 $file = $argv[1]

// 變量的初始化 $elements = $stack = array()$total_elements = $total_chars = 0

// 元素的基本類 class element; {; var $count = 0var $chars = 0var $parents = array()var $childs = array()};

// 解析XML文件的函數 function xml_parse_from_file($parser, $file); {; if(!file_exists($file)); {; die('Can't find file '$file'.')};

if(!($fp = @fopen($file, 'r'))); {; die('Can't open file '$file'.')};

while($data = fread($fp, 4096)); {; if(!xml_parse($parser, $data, feof($fp))); {; return(false)}; };

fclose($fp)

return(true)};

// 輸出結果函數(方框形式) function print_box($title, $value); {; printf('n+%'-60s+n', '')printf('|%20s', '$title:')printf('%14s', $value)printf('%26s|n', '')printf('+%'-60s+n', '')};

// 輸出結果函數(行形式) function print_line($title, $value); {; printf('%20s', '$title:')printf('%15sn', $value)};

// 排序函數 function my_sort($a, $b); {; return(is_object($a) && is_object($b) ? $b->count - $a->count: 0)};

function start_element($parser, $name, $attrs); {; global $elements, $stack

// 元素是否已在全局$elements數組中? if(!isset($elements[$name])); {; // 否-增加一個元素的類實例 $element = new element$elements[$name] = $element};

// 該元素的記數器加一 $elements[$name]->count++

// 是否有父元素? if(isset($stack[count($stack)-1])); {; // 是-將父元素賦給$last_element $last_element = $stack[count($stack)-1]

// 如果目前元素的父元素數組為空,初始化為0 if(!isset($elements[$name]->parents[$last_element])); {; $elements[$name]->parents[$last_element] = 0};

// 該元素的父元素記數器加一 $elements[$name]->parents[$last_element]++

// 如果目前元素的父元素的子元素數組為空,初始化為0

if(!isset($elements[$last_element]->childs[$name])); {; $elements[$last_element]->childs[$name] = 0};

// 該元素的父元素的子元素記數器加一 $elements[$last_element]->childs[$name]++};

// 將目前的元素加入到棧中 array_push($stack, $name)};

function stop_element($parser, $name); {; global $stack

// 從棧中將最頂部的元素移去 array_pop($stack)};

function char_data($parser, $data); {; global $elements, $stack, $depth

// 增加目前元素的字符數目 $elements[$stack][count($stack)-1]]->chars += strlen(trim($data))};

// 產生解析器的實例 $parser = xml_parser_create()

// 設置處理函數 xml_set_element_handler($parser, 'start_element', 'stop_element')xml_set_character_data_handler($parser, 'char_data')xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0)

// 解析文件 $ret = xml_parse_from_file($parser, $file)if(!$ret); {; die(sprintf('XML error: %s at line %d',; xml_error_string(xml_get_error_code($parser)),; xml_get_current_line_number($parser)))};

// 釋放解析器 xml_parser_free($parser)

// 釋放協助元素 unset($elements['current_element'])unset($elements['last_element'])

// 根據元素的次數排序 uasort($elements, 'my_sort')

// 在$elements中循環收集元素信息 while(list($name, $element) = each($elements)); {; print_box('Element name', $name)

print_line('Element count', $element->count)print_line('Character count', $element->chars)

printf('n%20sn', '* Parent elements')

// 在該元素的父中循環,輸出結果 while(list($key, $value) = each($element->parents)); {; print_line($key, $value)}; if(count($element->parents) == 0); {; printf('%35sn', '[root element]')};

// 在該元素的子中循環,輸出結果 printf('n%20sn', '* Child elements')while(list($key, $value) = each($element->childs)); {; print_line($key, $value)}; if(count($element->childs) == 0); {; printf('%35sn', '[no childs]')};

$total_elements += $element->count$total_chars += $element->chars};

// 最終結果 print_box('Total elements', $total_elements)print_box('Total characters', $total_chars)?>

標簽: PHP
主站蜘蛛池模板: 国产另类ts人妖一区二区 | 天天操网| 久久综合一区二区三区 | 99国产精品99久久久久久 | 国产精品免费在线 | 久久久久久成人 | 亚洲免费在线视频 | 日韩国产一区二区三区 | 综合一区二区三区 | 久久综合99re88久久爱 | 九九精品视频在线观看 | 日日夜夜av | 日韩一 | 欧美成人精品一区二区三区 | 乳色吐息在线观看 | 美国黄色毛片女人性生活片 | 日韩在线播放一区 | 日韩欧美一区二区视频 | 91亚洲一区 | 久久三区 | 亚洲视频中文字幕 | 日韩小视频网站 | av日韩一区 | 精品国产乱码久久久久久1区2区 | 亚洲精品乱码久久久久久久 | 国产精品久久久久久久久久东京 | 男女羞羞视频在线免费观看 | 午夜99| 亚洲美女视频在线观看 | 一二区视频 | 国产精品视频一区二区三区四蜜臂 | 亚洲麻豆精品 | 久久成人精品 | 午夜影视 | 黄瓜av| 国产成人精品一区二区三区在线 | 午夜久久久久 | 91av免费在线观看 | 国产精品一区二区三区在线免费观看 | 日操干| 成人精品 | 91精品国产一区二区三区蜜臀 | 国偷自产av一区二区三区 | 欧美成人一级 | 黄色一级电影免费观看 | 爱爱视频在线观看 | 午夜高清视频 | 亚洲电影一区二区三区 | 日本一区二区三区四区 | 久操综合| 日日精品| 亚洲一区 日韩精品 中文字幕 | 国产成人久久 | 色婷婷久久久swag精品 | 国产一级免费 | 久久六月 | 免费看国产片在线观看 | av网站免费看 | 日本成人在线视频网站 | 亚洲久草在线 | 国产一区 | 一级a性色生活片毛片 | 黄色a视频 | 99影视| 欧美一级欧美三级在线观看 | 日韩中文字幕在线观看 | 成人免费观看男女羞羞视频 | 狠狠干网站 | 久久国产精品精品国产 | 精品国产一区二区三区高潮视 | 国产日韩精品视频 | 亚洲成人一区二区三区 | 国产精品久久久久久久久免费软件 | 精品少妇一区二区三区日产乱码 | 亚洲综合国产 | 一本色道久久综合狠狠躁篇的优点 | 亚洲色图在线播放 | 欧美男人的天堂 | 欧美日韩一区二区三区 | 青青久久 | 亚洲人免费视频 | 性xxxxxxxxx18欧美| 久草久草久草 | 久久精品免费一区二区三区 | 91视频在线看 | 国产精品大片 | av天天网| 91亚洲精| 香蕉大人久久国产成人av | 国产精品不卡视频 | 日韩在线播放一区二区 | 日产精品久久久一区二区 | 在线一区二区三区视频 | 亚洲精品片 | 久久精品这里只有精品 | 在线观看一级片 | 久久电影国产 | 亚洲一区二区精品视频 | 999精品网 | 亚洲精品一区二区三区中文字幕 | 日摸夜操 | 欧美日韩中文字幕在线 | 国产精品欧美一区二区 | 亚洲免费视频一区 | 久久中文字幕一区二区三区 | 欧美在线一区二区三区 | 欧美成人精品在线视频 | 欧美色成人 | 国产精品欧美一区二区三区 | 午夜精品久久久久久 | 精品国产乱码久久久久久1区2区 | 亚洲激情视频在线播放 | 国产在线精品一区二区三区 | 天天操狠狠操 | 91国产精品入口 | 欧美一级在线播放 | 日韩高清在线 | 国产性猛交xxxx免费看久久 | 成人a在线 | 午夜视频在线观看网站 | 日韩中文字幕在线免费 | 亚欧毛片| 在线国产一区 | 免费成人在线观看视频 | 久久亚 | 国产日韩精品在线观看 | 成人午夜精品久久久久久久3d | 在线观看91视频 | 亚洲精品www | 一级片在线观看视频 | 国产精品久久久久国产精品 | 国产一区二区三区在线看 | 亚洲国产精品一区二区久久 | 亚洲第一免费视频网站 | 国产精品成av人在线视午夜片 | 国产精品久久久久婷婷二区次 | 日韩一区二区三区在线 | 色综合中文 | 国精日本亚洲欧州国产中文久久 | 欧美久久免费观看 | 日韩在线播放一区二区 | 免费欧美 | 精品亚洲一区二区三区 | 日本黄色大片免费看 | 日韩在线观看视频一区二区三区 | 国产精品一码二码三码在线 | 国产精品一区在线 | 精产国产伦理一二三区 | 亚洲在线视频 | www.久久视频 | 国产一区二区视频免费 | 日本高清视频在线播放 | 一区二区三区国产视频 | 天堂综合网| 国产高清精品一区二区三区 | 亚洲免费在线视频 | 亚洲国产精品久久久久久 | 欧美视频在线观看 | 国产精品网址 | 亚洲欧洲精品一区二区 | 欧美日韩国产一区二区三区在线观看 | 欧美精品被 | 黄色av网站在线观看 | 亚洲欧美在线一区 | 亚洲国产欧美一区二区三区久久 | 国产精品久久精品久久 | av网站免费线看 | 欧美日韩精品一区二区 | 男人阁久久 | 暖暖日本在线视频 | 色噜噜狠狠狠综合曰曰曰88av | 在线免费黄 | 伊人电院网| 电影k8一区二区三区久久 | 欧美精品一区二区在线观看 | 亚洲第一av| 一二三精品区 | 日本乱偷中文字幕 | 亚洲aaa | 99精品免费观看 | 成人一区二区三区在线 | 午夜视频网 | 国产一级色 | 91视频一区二区三区 | 日本视频二区 | 午夜国产精品视频 | 精品久久网 | 免费黄色特级片 | 国产精品爱久久久久久久 | 欧美不卡 | 日韩欧美在线视频 | 国外成人在线视频网站 | 黄色a视频 | 成人精品久久 | 日韩欧美一区二区三区四区 | 亚洲美女久久 | 欧美久热 | 毛片网在线观看 | 超碰一区 | 一区二区三区国产免费 | 日韩视频在线观看 | 久久久亚洲一区 | 久日精品| 亚洲免费观看视频 | 精品在线一区二区 | 色噜噜色综合 | 中文字幕久久精品 | 欧美日韩一区二区三区四区 | 亚洲成人av一区二区 | 91精品国产美女在线观看 | 日日夜夜精品网站 | 国产成人精品免高潮在线观看 | 91午夜精品一区二区三区 | 成人h视频在线观看 | 欧美日韩久久精品 | 欧美精品在线观看 | 日韩精品一区二区在线观看 | 性视频网 | 国产精品久久久999 成人亚洲视频 | 91春色| 国产在线成人 | 毛片日韩| 91日日| 亚洲风情在线观看 | 日韩一区二区不卡 | 91精品国产91综合久久蜜臀 | 日韩成年人视频 | 国产精品久久久久久亚洲调教 | 国产日韩欧美在线观看 | 日韩2020狼一二三 | 久草在线视频网 | 国产精品一区二区三区在线播放 | 视频二区 | 欧美日韩国产一区二区三区不卡 | 国产精品永久免费自在线观看 | 亚洲精品一区二三区不卡 | 国产黄色在线播放 | 国产精品久久久久久亚洲调教 | 日韩精品在线观看视频 | 超碰最新网址 | 欧美成人免费在线视频 | 97久久精品人人做人人爽50路 | 日韩一区二区在线观看 | 多p视频| 奇米影视四色777me | 日本一区二区三区四区 | 国产一区精品电影 | av色伊人久久综合一区二区 | 日韩在线观看成人 | 午夜精品一区二区三区在线视频 | 成人一级片视频 | 久久美女视频 | 国产亚洲精品精品国产亚洲综合 | 久在线视频 | 成人在线免费视频观看 | 国产精品极品美女在线观看免费 | 成人在线免费视频观看 | 黄a免费看| 成人免费一区二区三区视频网站 | 亚洲欧美日韩系列 | 免费一级在线观看 | 国产四区 | 91精品国产高清一区二区三区 | 精品日韩欧美一区二区在线播放 | 成人午夜免费视频 | 天天射影院 | 99久久婷婷国产综合精品 | 中文一二区 | 91国内产香蕉 | 亚洲电影在线观看 | 国产情侣av自拍 | 日韩免费视频中文字幕 | 激情网站免费 | 亚洲欧美日韩在线一区二区三区 | 天天综合永久入口 | 欧美久草| 成人免费在线网址 | 亚洲国产成人av好男人在线观看 | 日韩精品免费 | 色香阁99久久精品久久久 | 久久99爱视频| 日韩爱爱网址 | 日韩精品在线观看免费 | 国产精品久久久久久妇女6080 | 少妇无套高潮一二三区 | 成人二区| 日日夜夜天天干干 | 成人午夜电影在线观看 | 97av在线| 三级视频在线观看 | 男人天堂a | 日韩精品视频在线观看一区二区 | 久久国语 | 国产一区二区在线视频观看 | 欧美精品入口蜜桃 | 久草福利资源 | 不卡黄色 | 色综合激情 | 亚洲国产成人在线 | 99精品视频免费在线观看 | 天天澡天天狠天天天做 | 亚洲一区 日韩精品 中文字幕 | 涩涩视频在线 | 美女张开腿视频网站免费 | 精品91在线视频 | 亚洲免费人成在线视频观看 | 一级黄色录像视频 | 国产精品一区二区三区在线 | 国产九九av| 国产一区二区在线看 | 日韩一区二区三区精品 | 韩国毛片在线观看 | 亚洲综合在线一区 | 日韩日韩日韩日韩日韩日韩 | 91高清视频在线观看 | 国产 日韩 欧美 在线 | 99热在线播放 | 操老逼| 久久久久久91亚洲精品中文字幕 | 一区二区免费视频 | 欧美一区二区三区xxxx监狱 | 97在线超碰 | 欧美激情精品久久久久 | 香蕉视频在线看 | 国产人免费人成免费视频 | 日韩高清中文字幕 | 亚洲成人中文字幕 | 中文一区| 91久久精品久久国产性色也91 | h片在线看 | 一区二区三区免费在线 | 特级淫片裸体免费看 | 亚洲精品成人av | 日韩在线欧美 | 99精品视频免费在线观看 | 国产av毛片 | 国产综合久久久 | 一区二区中文字幕 | 欧美男人的天堂 | 黄色小视频在线免费观看 | 黄色大片网站 | 欧美国产视频 | 成人激情视频在线观看 | 国产日韩精品一区二区在线观看播放 | 久久亚洲综合 | 天天操天天拍 | 国内自拍视频在线观看 | 亚洲男人天堂网 | 日韩福利影院 | 一区二区三区在线免费播放 | www.天天操.com | 亚洲免费视频观看 | 日韩一区二区视频在线 | 久久久久久久久久一区二区 | 欧美在线一区二区三区 | 麻豆国产免费 | 欧美日韩精品久久久 | 99国产精品| 亚洲精品中文字幕在线观看 | 免费观看一级特黄欧美大片 | 久久久久国产一区二区三区 | 亚州中文字幕蜜桃视频 | 日韩精品999| 欧美一级二级视频 | 久久草视频 | h片免费观看 | 精品99久久久久久 | 亚洲成人在线视频播放 | 九色在线观看 | 一区二区三区高清 | 精品国产一区在线 | 欧美成人精品 | 在线免费中文字幕 | 久久久xx| 91在线一区二区 | 91丁香婷婷综合久久欧美 | 久久久久久久 | 国产羞羞视频在线观看 | 久久久精品日本 | 日本二区 | 日本在线观看 | 成人免费在线电影 | 欧美亚洲一区 | 毛片99 | 免费成人精品 | 草久久久| 日韩av一区二区三区在线 | 国产高清美女一级a毛片久久 | 成人在线黄色 | 一区二区三区精品视频 | 国产精品久久一区二区三区 | 日韩精品 电影一区 亚洲 | 波多野结衣av中文字幕 | 久久精品国产99国产 | 超黄视频在线观看 | 最新国产在线 | 色8久久 | 欧美激情在线观看 | 日韩免费在线观看视频 | 国产成人精品一区二区视频免费 | 激情欧美日韩一区二区 | 国产一区二区三区四区三区 | 国产一区二区在线免费 | 日韩激情欧美 | 麻豆亚洲| 日韩成人影院 | 久热中文字幕 | 特级毛片在线大全免费播放 | 国产美女久久久 | 国产精品久久久久久久久久免费看 | h视频免费在线 | 成人免费观看视频 | 91在线高清| 欧美综合久久 | 亚洲精品一区二区三区在线看 | 午夜午夜精品一区二区三区文 | 97久久超碰 | 91麻豆精品国产91久久久更新资源速度超快 | 国产精品日韩欧美一区二区三区 | 亚洲第一区在线 | 精品国产一区二区 | 亚洲福利影院 | 欧美国产在线观看 | 国产欧美日韩 | 在线国产欧美 | 一二三四在线视频观看社区 | 久久视频精品 | 美女超碰在线 | 簧片av| 伊人干 | 亚洲一区二区三区日韩 | 亚洲一区成人 | 日韩99 | 亚洲视频在线看 | 午夜亚洲| 国产亚洲精品一区二区 | 在线观看成人av | 欧美视频在线一区 | 啪啪tv网站免费入口 | 天天干干干干 | 在线观看日韩精品 | 久久人人爽人人爽人人片av高清 | 日韩视频精品在线 | av网站观看 | 成人不卡视频 | 精品国产乱码久久久久久闺蜜 | 国产区在线观看 | 一区二区三区高清不卡 | 国产日韩欧美视频 | 97伦理电影网 | 久久久男人天堂 | 亚洲国产成人在线 | baoyu133. con永久免费视频 | 一区二区三区免费 | 日韩成人av在线 | 日本成人中文字幕 | 在线观看欧美一区二区三区 | 日韩欧美中文 | 欧美综合一区二区 | 日本久久精品视频 | 久久久久久久久久久久久av | 二区在线观看 | www久| 精品中文字幕在线观看 | 亚洲欧美日韩国产 | 欧美视频在线播放 | 一级毛片,一级毛片 | 色综合天天综合网国产成人网 | 精品国产乱码一区二区三 | 亚洲欧美日韩在线 | 在线视频中文字幕 | 日批免费观看视频 | 99久久免费观看 | 人人干在线 | 91国内视频在线观看 | 国产欧美综合一区 | 青青草精品 | 日本不卡一区二区 | 国产乱人伦av在线a jizz久久久 www.亚洲 | 久久免费看 | 亚洲久久久 | 欧美视频在线一区 | 欧美日韩一区二区三区在线电影 | 国产美女网站 | 久久国产精品一区二区 | 久久国产成人午夜av影院宅 | 久久国内精品 | 国产一区二区三区免费看 | 国产精品久久精品久久 | 私人毛片免费高清视频 | 日韩欧在线 | 国产精品亚洲一区二区三区 | 国产毛片毛片 | 怡红院成人影院 | 日韩视频―中文字幕 | 久久久国产精品入口麻豆 | 国内精品99 | 久久国产精品视频 | 国产午夜久久 | 国产一区二区三区在线免费观看 | 国产精品久久99 | 一级黄色国产 | 久久狠狠 | 亚洲国产精品一区 | 高清一区二区三区 | 午夜激情影院 | 国产亲子乱弄免费视频 | 秋霞电影院午夜伦 | 中文在线一区 | 可以免费看黄的网站 | 国产免费拔擦拔擦8x高清在线人 | 狠狠综合久久av一区二区老牛 | 国产精品久久久久国产a级 日韩在线二区 | 欧美9999| 在线不卡一区 | 午夜国产精品成人 | 亚洲欧美第一页 | www天天干 | 亚洲毛片网站 | 久久夜色精品 | 国产综合视频在线观看 | 狠狠狠干 | 欧美一级淫片007 | 日韩欧美国产一区二区 | 久草网在线视频 | 国产精品三级久久久久久电影 | 亚洲巨乳自拍在线视频 | 六月婷操| 久久久精品网站 | 欧美日韩视频 | 成人午夜在线视频 | 国产青青草 | 成年人在线观看视频 | 精品国产仑片一区二区三区 | 中国特黄毛片 | 国产日韩欧美一区 | 亚州精品天堂中文字幕 | 国产精品乱码一二三区的特点 | 国产精品美女久久久久久久久久久 | 日韩视频在线不卡 | 国产精品欧美一区二区三区 | 午夜精品福利在线观看 | 综合在线视频 | 日韩成人影院在线观看 | 日韩高清av | 日韩中文字幕在线观看 | 2021最新热播中文字幕-第1页-看片视频 青青青久草 | 一区二区日韩精品 | 久久一区二区av | 青青草免费在线 | 久久久久久久99精品免费观看 | 黄色资源在线观看 | 日韩欧美一区二区三区四区 | 中文字幕在线资源 | 国产视频精品免费 | 韩日在线观看视频 | 一本大道久久a久久精二百 亚洲欧美高清 | 亚洲精品成人网 | 久久久精品网站 | 欧美精品在线观看 | 一级毛片一级毛片一级毛片 | 国产一区二区三区在线 | 影视一区 | 四虎动漫 | 日本高清视频网站 | 久久精品免费国产 | 美女一区二区三区四区 | 亚洲激情在线 | 久久久成人精品 | 成人午夜激情 | 91亚洲国产成人久久精品网站 | 日韩精品一区二区三区视频播放 | 精品国产91| 羞羞视频免费观看网站 | 久久成人一区二区 | 欧洲精品一区二区 | 视频一区二区三区在线观看 | 久久久精品国产 | 日韩精品专区 | 久久精品首页 | 亚洲一区国产视频 | 一区二区三区四区日韩 | 一级做a爰片性色毛片2021 | 亚洲欧美激情视频 | 精品96久久久久久中文字幕无 | 在线视频一区二区 | 成人免费一区二区三区视频网站 | 先锋久久 | 久久黄色网 | jjzz18国产 | 欧美一区二区三区四区五区 | 免费视频一区二区 | 久久久精 | 久久久久中文 | 久久九| 欧美精品1区 | 日韩国产欧美 | 亚洲深深色噜噜狠狠网站 | 性视频网站免费 | 国产精品高清在线 | 久久99爱视频 | 亚洲伦理一区 | 7878www免费看片 | 亚洲成人精品一区 | 女男羞羞视频网站免费 | 久久精品1 | 日韩在线视频观看免费 | 一本色道久久综合狠狠躁篇的优点 | 精品在线一区二区三区 | 日韩免费在线 | 一本一道久久精品综合 | 国产日韩中文字幕 | 午夜影院免费版 | 精品亚洲成人 | 成人a在线视频免费观看 |