日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

前端学PHP之文件操作

發布時間:2025/6/15 php 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前端学PHP之文件操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前面的話

  在程序運行時,程序本身和數據一般都存在內存中,當程序運行結束后,存放在內存中的數據被釋放。如果需要長期保存程序運行所需的原始數據,或程序運行產生的結果,就需要把數據存儲在文件或數據庫。一般地,小型數據存儲在文件中,海量數據存儲在數據庫中。本文主要介紹php中目錄和文件的基本操作

?

文件類型

  文件一般指存儲在外部介質上具有名字(文件名)的一組相關數據集合。用文件可長期保存數據,并實現數據共享

  PHP是以UNIX的文件系統為模型的。因此在Windows系統中我們只能獲得”file”、”dir”或者“unknown”三種文件類型。而在UNIX系統中,我們可以獲得block、char、dir、fifo、file、link和unknown七種類型

  可以使用函數filetype()獲取文件的具體類型,可能的值有fifo,char,dir,block,link,file 和 unknown

string filetype ( string filename )

  如果出錯則返回 FALSE。如果調用失敗或者文件類型未知的話 filetype() 還會產生一個 E_NOTICE 消息

  在服務器中新建一個目錄test,并在目錄中新建一個文件a.txt

<?php echo filetype('test/a.txt'); // file echo filetype('test/'); // dir echo filetype('test/b.txt'); // Warning: filetype(): Lstat failed for test/b.txt ?>

  在這7種文件類型中,window系統常用的是'file'和'dir'這兩種,它們配套的類型檢測函數分別是is_dir( )和is_file( )

is_dir( )

  判斷給定文件名是否是一個目錄。如果文件名存在并且是一個目錄則返回 true,否則返回 false 

bool is_dir(_name)

is_file( )

  判斷給定文件名是否為一個正常的文件,如果文件存在且為正常的文件則返回 true?

bool is_file(_name) <?php var_dump (is_file('test/a.txt')); //boolean true var_dump (is_dir('test/')); //boolean true ?>

?

文件屬性

  一般地,在文件或目錄右鍵菜單中,選擇屬性,即可查看文件的屬性

  下表中列出了php中關于文件屬性的常用函數

<?php var_dump (file_exists('test/a.txt')); //boolean true var_dump (filesize('test/a.txt')); // int 0 var_dump (is_readable('test/a.txt')); //boolean true var_dump (is_writeable('test/a.txt')); //boolean true var_dump (is_executable('test/a.txt')); //boolean false var_dump (date("Y-m-d H:i:s",(filectime('test/a.txt'))));//string '2016-11-22 06:47:54' (length=19) var_dump (date("Y-m-d H:i:s",(filemtime('test/a.txt'))));//string '2016-11-22 06:47:54' (length=19) var_dump (date("Y-m-d H:i:s",(fileatime('test/a.txt'))));//string '2016-11-22 06:47:54' (length=19) ?>

?

目錄路徑

  windows下的目錄路徑使用是正斜杠(\),而unix下的目錄路徑使用是反斜杠(/)

$unixPath="/var/www/html/index.php"; //在UNIX系統中的絕對路徑,必須使用"/"分隔 $winPath="C:\\Appserv\\www\\index.php"; //在Windows系統的絕對路徑,默認使用"\"分隔 $winPath2="C:/Appserv/www/index.php"; //在Windows系統中也可使用“/”分隔

  因為在Windows系統中也可使用(/)分隔。所以,在PHP中,不論是什么操作系統,全部都使用反斜杠(/)代表路徑分隔符號?

  在PHP中,還提供了一個常量DIRECTORY_SEPARATOR,以此來代表目錄分隔符,但寫起來較麻煩

<?php echo "c:".DIRECTORY_SEPARATOR."a".DIRECTORY_SEPARATOR."b".DIRECTORY_SEPARATOR."c"; //c:\a\b\c ?>

  在windows下多個路徑的分隔符使用分號(;)分隔,而unix下使用冒號(:)分隔

  在PHP中,提供了一個常量PATH_SEPARATOR,用來在跨平臺的情況下,表示多個路徑之間的分隔符

<?php echo "aaa/ccc/ddd".PATH_SEPARATOR."/www/yyyy";//aaa/ccc/ddd;/www/yyyy ?>

換行 

  在window下,換行是\r\n,而在unix下,換行是\n。通常在寫程序中,換行就以unix為準,寫作\n

  同樣地,PHP提供了一個常量PHP_EOL,用來在跨平臺的情況下,表示換行

.和..

  在PHP中,.表示當前目錄,..表示上一級目錄

<?php var_dump (file_exists('test/a.txt'));//boolean true var_dump (file_exists('./test/a.txt'));//boolean true var_dump (file_exists('../www/test/a.txt'));//boolean true ?>

根路徑

  有兩種根路徑需要進行區分,一種是客戶端根路徑,一種是服務器根路徑

  以我自己在d盤安裝的wamp為例,客戶端根路徑指'd:\wamp\www\',而服務器根路徑為為'd:\'

<?php echo '<img src="/a.jpg">';//客戶端根路徑,相當于d:\wamp\www\a.jpg mkdir('/hello');//服務器根路徑,相當于d:\hello ?>

路徑解析函數

【basename()】

  basename()函數用于返回路徑中的文件名部分

<?php echo "1) ".basename("/etc/sudoers.d", ".d");//1) sudoers echo "2) ".basename("/etc/passwd").PHP_EOL;//2) passwd echo "3) ".basename("/etc/").PHP_EOL;//3) etc echo "4) ".basename(".").PHP_EOL;//4) . echo "5) ".basename("/");//5) ?>

【dirname()】

  dirname()函數用于返回路徑中的目錄部分

<?php echo "1) " . dirname("/etc/passwd") . PHP_EOL; // 1) /etc echo "2) " . dirname("/etc/") . PHP_EOL; // 2) \ echo "3) " . dirname("."); // 3) . ?>

【pathinfo()】

  pathinfo()函數用于返回文件路徑的信息

<?php $path_parts = pathinfo('/www/htdocs/inc/lib.inc.php'); echo $path_parts['dirname'], "\n";// '/www/htdocs/inc' 目錄名 echo $path_parts['basename'], "\n";// 'lib.inc.php' 文件名 echo $path_parts['extension'], "\n";// 'php' 文件后綴 echo $path_parts['filename'], "\n"; // 'lib.inc' 文件名不帶后綴 ?>

【realpath()】

  realpath()函數用于返回規范化的絕對路徑名

  在Windows上,realpath()會將unix風格的路徑改成Windows風格的

<?php echo realpath('/wamp');// 'D:\wamp' ?>

?

目錄遍歷

glob()

  glob()函數用于尋找與模式匹配的文件路徑

array glob ( string $pattern [, int $flags = 0 ] )

  在www目錄下新建a.txt和b.txt文件

<?php foreach (glob("*.txt") as $filename) {//a.txt size 1050 b.txt size 73echo "$filename size " . filesize($filename) . "\n"; } ?>

opendir()

  opendir()函數用于打開目錄句柄。如果成功則返回目錄句柄的resource,失敗則返回 FALSE

resource opendir ( string $path [, resource $context ] ) <?php var_dump(opendir('test'))//resource(3, stream) ?>

closedir()

  closedir()函數用于關閉目錄句柄

void closedir ([ resource $dir_handle ] )

  參數dir_handle表示目錄句柄的 resource,之前由 opendir()所打開的。如果目錄句柄沒有指定,那么會假定為是opendir()所打開的最后一個句柄

<?php $dir = opendir('test'); closedir($dir); ?>

readdir()

  readdir()函數用于從目錄句柄中讀取條目,返回目錄中下一個文件的文件名。文件名以在文件系統中的排序返回,失敗時返回 FALSE

string readdir ([ resource $dir_handle ] )

  在www目錄下新建目錄test,并在目錄test下新建a.txt和b.txt文件

<?php $dir = opendir('test'); echo readdir($dir)."<br>";//. echo readdir($dir)."<br>";//.. echo readdir($dir)."<br>";//a.txt echo readdir($dir)."<br>";//b.txt echo readdir($dir)."<br>";// closedir($dir); ?>

  在遍歷目錄時,每個目錄的前兩個返回值都是.和..,.代表當前目錄,..代表上一級目錄

  所以,一般地,列出當前目錄的所有文件并去掉 . 和 ..,常采用下面的代碼

<?php if ($handle = opendir('test')) {while (false !== ($file = readdir($handle))) {if ($file != "." && $file != "..") {echo "$file\n";}}closedir($handle); } ?>

  接下來,在test目錄下,新建一個目錄in,并在in目錄中新建文件c.txt。然后,目錄和文件區分顯示

  [注意]通過is_dir()函數判斷目錄時,需要加入路徑

<?php if ($handle = opendir('test')) {while (false !== ($file = readdir($handle))) {if ($file != "." && $file != "..") {$file = "test/".$file;if(is_dir($file)){echo "目錄:".$file."<br>";}else{echo "文件:".$file."<br>";}}}closedir($handle); } /* 文件:test/a.txt 文件:test/b.txt 目錄:test/in*/ ?>

rewinddir()

  rewinddir()函數用于倒回目錄句柄,將參數dir_handle指定的目錄流重置到目錄的開頭

void rewinddir ( resource $dir_handle )

  如果不使用rewinddir()函數,則文件只能遍歷一次

<?php if ($handle = opendir('test')) {while (false !== ($file = readdir($handle))) {if ($file != "." && $file != "..") {$file = "test/".$file;if(is_dir($file)){echo "目錄:".$file."<br>";}else{echo "文件:".$file."<br>";}}}while (false !== ($file = readdir($handle))) {if ($file != "." && $file != "..") {$file = "test/".$file;if(is_dir($file)){echo "目錄:".$file."<br>";}else{echo "文件:".$file."<br>";}}}closedir($handle); }/* 文件:test/a.txt 文件:test/b.txt 目錄:test/in*/ ?>

  使用rewinddir()函數,可以把目錄句柄返回到第一個文件,從而實現重新遍歷

<?php if ($handle = opendir('test')) {while (false !== ($file = readdir($handle))) {if ($file != "." && $file != "..") {$file = "test/".$file;if(is_dir($file)){echo "目錄:".$file."<br>";}else{echo "文件:".$file."<br>";}}}rewinddir($handle);while (false !== ($file = readdir($handle))) {if ($file != "." && $file != "..") {$file = "test/".$file;if(is_dir($file)){echo "目錄:".$file."<br>";}else{echo "文件:".$file."<br>";}}}closedir($handle); }/* 文件:test/a.txt 文件:test/b.txt 目錄:test/in 文件:test/a.txt 文件:test/b.txt 目錄:test/in*/ ?>

?

目錄統計

disk_total_space()

  disk_total_space()函數返回一個目錄的磁盤總大小

float disk_total_space ( string $directory ) <?php $ds = disk_total_space("C:"); echo $ds."<br>";//126652637184 $ds = disk_total_space("D:"); echo $ds;//1000202240000 ?>

disk_free_space()

  disk_free_space()函數返回目錄中的可用空間

float disk_free_space ( string $directory ) <?php $ds = disk_free_space("C:"); echo $ds."<br>";//86087041024 $ds = disk_free_space("D:"); echo $ds;//481647472640 ?>

  下面來統計在www文件夾下新建的test目錄的個數

<?php$dirn = 0; //目錄數$filen = 0; //文件數//統計一個目錄下的文件和目錄的個數function getdirnum($file) {global $dirn;global $filen; $dir = opendir($file);while (false !== ($filename = readdir($dir))) {if($filename!="." && $filename !="..") {$filename = $file."/".$filename; //更新路徑if(is_dir($filename)) {$dirn++;getdirnum($filename); //遞歸,就可以查看所有子目錄} else {$filen++; }}}closedir($dir);}getdirnum("test");echo "目錄數為:{$dirn}<br>";//目錄數為:1echo "文件數為:{$filen}<br>";//文件數為:3 ?>

  下面來統計在www文件夾下新建的test目錄的大小

<?php//統計目錄大小function dirsize($file) {$size = 0;$dir = opendir($file);while(false !== ($filename = readdir($dir))) {if($filename!="." && $filename !="..") {$filename = $file."/".$filename;if(is_dir($filename)) {$size += dirsize($filename);//使用遞歸} else {$size += filesize($filename);}}}closedir($dir);return $size;} echo "test目錄大小為:".dirsize("test")."<br>";//test目錄大小為:302 ?>

目錄增刪

mkdir()

  mkdir()函數用于新建目錄 

bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )

rmdir()

  rmdir()函數用于刪除目錄

bool rmdir ( string $dirname [, resource $context ] )

  [注意]該目錄必須是空的,而且要有相應的權限。失敗時會產生一個 E_WARNING 級別的錯誤

unlink()

  unlink()函數用于刪除文件

bool unlink ( string $filename [, resource $context ] )

  下面來清空test目錄

<?phpfunction deldir($dirname) {//如果是文件,直接刪除即可if(is_file($dirname)) {unlink($dirname);}$dir = opendir($dirname);while(FALSE !== ($filename = readdir($dir))) {if($filename !="." && $filename!="..") {$filename = $dirname."/".$filename;if(is_dir($filename)) {deldir($filename);//遞歸}else {unlink($filename);//刪除文件 }}}closedir($dir);if($dirname != 'test'){rmdir($dirname);//刪除目錄 }}deldir("test"); ?>

?

目錄復制

copy()

  copy()函數用于拷貝文件 

bool copy ( string $source , string $dest [, resource $context ] )

  [注意]copy()函數不能用于復制目錄

<?php $file = 'a.txt'; $newfile = 'a.bak'; copy($file, $newfile); ?>

rename()

  rename()函數用于重命名一個文件或目錄

bool rename ( string $oldname , string $newname [, resource $context ] )

  [注意]rename()函數具有移動文件或目錄的功能?

  下面把www目錄下的test目錄剪貼,命名為t,并移動到d盤目錄下

<?php rename("test", "d:/t"); ?>

  使用rename()只能實現剪切的操作,使用copy()只能復制文件。如果要復制目錄,則需要使用循環和遍歷

<?php/*** $dirsrc 原目錄* $dirto 目標目錄*/function copydir($dirsrc, $dirto) {//如果目錄不存在,則新建一個目錄if(!file_exists($dirto)) {mkdir($dirto);}$dir = opendir($dirsrc);while(FALSE !== ($filename = readdir($dir))) {if($filename != "." && $filename !="..") {$srcfile = $dirsrc."/".$filename; //原文件$tofile = $dirto."/".$filename; //目標文件if(is_dir($srcfile)) {copydir($srcfile, $tofile); //遞歸處理所有子目錄}else{copy($srcfile, $tofile);//復制文件 }}}}copydir("test", "d:/t"); ?>

?

文件操作

touch()

  touch()函數用來設定文件的訪問和修改時間。如果文件不存在,則會被創建。成功時返回 TRUE, 或者在失敗時返回 FALSE

bool touch ( string $filename [, int $time = time() [, int $atime ]] )

  參數filename表示要設定的文件名,time表示要設定的時間。如果沒有提供參數 time 則會使用當前系統的時間;atime表示如果給出了這個參數,則給定文件的訪問時間會被設為atime,否則會設置為time。如果沒有給出這兩個參數,則使用當前系統時間

<?phptouch('abc.txt') ?>

copy()

  copy()函數用于拷貝文件

bool copy ( string $source , string $dest [, resource $context ] )

  [注意]copy()函數不能用于復制目錄

<?php $file = 'a.txt'; $newfile = 'a.bak'; copy($file, $newfile); ?>

rename()

  rename()函數用于重命名一個文件或目錄

bool rename ( string $oldname , string $newname [, resource $context ] )

  [注意]rename()函數具有移動文件或目錄的功能

<?php rename("abc.txt", "d:/cba.txt"); ?>

unlink()

  unlink()函數用于刪除文件

bool unlink ( string $filename [, resource $context ] ) <?php unlink("d:/cba.txt"); ?>

?

文件內容

fopen()

  fopen()函數用于打開文件或者URL,fopen()將 filename 指定的名字資源綁定到一個流上

  [注意]如果文件不存在,將新建并打開文件

fopen('test.png',w);

  fopen() 中 mode 的可能值列表

mode 說明 'r' 只讀方式打開,將文件指針指向文件頭。 'r+' 讀寫方式打開,將文件指針指向文件頭。 'w' 寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創建之。 'w+' 讀寫方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創建之。 'a' 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。 'a+' 讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。 <?php//使用絕對路徑打開file.txt文件,選擇只讀模式,并返回資源$handle$handle = fopen("/home/rasmus/file.txt", "r");//訪問文檔根目錄下的文件,也以只讀模式打開$handle = fopen(“{$_SERVER['DOCUMENT_ROOT']}/data/info.txt", "r");//在 Windows 平臺上,轉義文件路徑中的每個反斜線,或者用斜線,以二進制和只寫模式組合$handle = fopen("c:\\data\\file.gif", "wb");//使用相對路徑打開file.txt文件,選擇只讀模式,并返回資源$handle$handle = fopen("../data/info.txt", "r");//打開遠程文件, 使用HTTP協議只能以只讀的模式打開$handle = fopen("http://www.example.com/", "r");//使用FTP協議打開遠程文件,如果FTP服務器可寫,則可以以寫的模式打開$handle = fopen("ftp://user:password@example.com/somefile.txt", "w"); ?>

fclose()

  fclose()函數用于關閉一個已打開的文件指針

bool fclose ( resource $handle ) <?php $handle = fopen('test/a.txt', 'r'); fclose($handle); ?>

fwrite()

  fwrite()函數用于寫入文件(可安全用于二進制文件),返回寫入的字符數,出現錯誤時則返回 FALSE

int fwrite ( resource $handle , string $string [, int $length ] )

  當打開方式為只讀模式時,無法向文件寫入字符

<?php $fp = fopen('test/a.txt', 'r'); echo fwrite($fp, '1');//0 echo "<br>"; echo fwrite($fp, '23');//0 echo "<br>"; fclose($fp); ?>

  當打開方式為寫模式時,可以向文件寫入字符

<?php $fp = fopen('test/a.txt', 'w'); echo fwrite($fp, '1');//1 echo "<br>"; echo fwrite($fp, '23');//2 echo "<br>"; fclose($fp); /* 文件內容為123*/ ?>

  當打開方式為追加模式時,將向文件的尾部追加新的字符

<?php $fp = fopen('test/a.txt', 'a'); echo fwrite($fp, '1');//1 echo "<br>"; echo fwrite($fp, '23');//2 echo "<br>"; fclose($fp); /* 刷新兩次時,文件內容為123123*/ ?>

fgetc()

  fgetc()函數用于從文件指針中讀取字符

  [注意]使用fgetc()函數時,需要在fopen()函數中使用讀模式

string fgetc ( resource $handle ) <?php $fp = fopen('test/a.txt', 'r'); echo fgetc($fp);//1 echo fgetc($fp);//2 echo fgetc($fp);//3 fclose($fp); ?>

feof()

  feof()函數用于測試文件指針是否到了文件結束的位置

bool feof ( resource $handle ) <?php $fp = fopen('test/a.txt', 'r'); while(!feof($fp)){echo fgetc($fp);//123123 } fclose($fp); ?>

fgets()

  fgets()函數用于從文件指針中讀取一行

string fgets ( resource $handle [, int $length ] )

  將test目錄下的a.txt文件內容修改為

aa bbb <?php $fp = fopen('test/a.txt', 'r'); echo fgets($fp);//'aa' echo fgets($fp);//'bbb' echo fgets($fp);//'' fclose($fp); ?>

fread()

  fread()函數用于讀取文件(可安全用于二進制文件)。fread()從文件指針handle讀取最多length個字節。該函數在讀取了length個字節或到達了文件末尾(EOF)時將停止讀取文件

string fread ( resource $handle , int $length ) <?php $fp = fopen('test/a.txt', 'r'); echo fread($fp,3);//'aa ' fclose($fp);$fp = fopen('test/a.txt', 'r'); echo fread($fp,filesize('test/a.txt'));//'aa bbb' fclose($fp); ?>

fseek()

  fseek()函數用于在文件指針中定位,成功則返回 0;否則返回 -1

int fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] )

  將test目錄下的a.txt文件內容修改為'12345'

<?php $fp = fopen('test/a.txt', 'r'); echo fgetc($fp);//'1' fseek($fp,4); echo fgetc($fp);//'5' fclose($fp); ?> <?php $fp = fopen('test/a.txt', 'r'); echo fread($fp,2)."<br>";//12 fseek($fp,4); echo fread($fp,2)."<br>";//5 fseek($fp,-3,SEEK_END); echo fread($fp,2)."<br>";//34 fclose($fp); ?>

ftell()

  ftell()函數用于返回文件指針讀/寫的位置 

int ftell ( resource $handle ) <?php $fp = fopen('test/a.txt', 'r'); echo ftell($fp);//0 fgetc($fp); echo ftell($fp);//1 fseek($fp,4); echo ftell($fp);//4 fclose($fp); ?>

rewind()

  rewind()函數用于倒回文件指針的位置,將handle的文件位置指針設為文件流的開頭

bool rewind ( resource $handle ) <?php $fp = fopen('test/a.txt', 'r'); fseek($fp,2); echo ftell($fp);//2 rewind($fp); echo ftell($fp);//0 ?>

file_get_contents()

  file_get_contents()函數用于將整個文件讀入一個字符串

string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] ) <?php $homepage = file_get_contents('test/a.txt'); echo $homepage;//'12345' ?>

  頁面變為百度首頁

<?php $homepage = file_get_contents('http://www.baidu.com/'); echo $homepage; ?>

file_put_contents()

  file_put_contents()函數用于將一個字符串寫入文件

int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )

  使用該函數和依次調用 fopen(),fwrite() 以及 fclose() 功能一樣

  [注意]默認為寫模式,若設置第三個參數為FILE_APPEND,則變為追加模式

<?php file_put_contents('test/a.txt','abc'); ?>

readfile()

  readfile()函數用于讀取文件并寫入到輸出緩沖

int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] ) <?php readfile('http://www.baidu.com/');//頁面中顯示百度首頁 ?> <?php readfile('test/a.txt');//頁面中顯示abc ?>

file()

  file()函數用于把整個文件讀入一個數組中,每一行作為一個數組的元素

array file ( string $filename [, int $flags = 0 [, resource $context ]] )

  將a.txt的文件內容改為每一行一個數字,分別是1、2、3、4、5、6、7、8、9

<?php $arr = file('test/a.txt',0); echo $arr[0]."<br>";//1 echo count($arr);//9 ?>

ftruncate()

  ftruncate()函數用于將文件截斷到給定的長度

bool ftruncate ( resource $handle , int $size )

  [注意]使用ftruncate()函數時,需要使用追加模式。經測試,使用讀模式時無效,使用寫模式時,文件內容被清空

<?php $fp = fopen("test/a.txt","a"); ftruncate($fp,100); ?>

?【新建文件】

  php中并沒有專門的新建一個空文件的函數,但是可以利用fopen()和touch()方法實現

$file = fopen('a.png',w); fclose($file); touchu('a.png');

?

文件鎖定

  文件操作是在網絡環境下完成的,可能有多個客戶端用戶在同一時刻對服務器上的同一個文件訪問。當這種并發訪問發生時,很可能會破壞文件中的數據。例如,一個用戶正向文件中寫入數據,還沒有寫完時,其他用戶在這一時刻也向這個文件寫入數據,就會造成數據寫入混亂。還有,當用戶沒有將數據寫完時,其他用戶就去獲取這個文件中的內容,也會得到殘缺的數據

  在PHP中提供了flock()函數,可以對文件使用鎖定機制(鎖定或釋放文件)。當一個進程在訪問文件時加上鎖,其他進程想對該文件進行訪問,則必須等到鎖定被釋放以后。這樣就可以避免在并發訪問同一個文件時破壞數據

語法: bool flock ( int handle, int operation [, int &wouldblock] )

  PHP支持以咨詢方式(也就是說所有訪問程序必須使用同一方式鎖定,否則它不會工作)鎖定全部文件的一種輕便方法

  handle 必須是一個已經打開的文件指針

operation 可以是以下值之一:

  要取得共享鎖定(讀取程序),將 operation 設為 LOCK_SH

  要取得獨占鎖定(寫入程序),將 operation 設為 LOCK_EX

  要釋放鎖定(無論共享或獨占),將 operation 設為 LOCK_UN

  如果不希望flock()在鎖定時堵塞,則給 operation 加上 LOCK_NB

  如果成功則返回 TRUE,失敗則返回 FALSE

  下面是一個網絡留言本的示例,一方面應用鎖機制,另一方面綜合地使用PHP中文件操作的內容

<?phpheader("Content-Type:text/html;charset=utf8");//功能類似于數據庫的文件$filename = "message.txt";//檢查函數function test_input($data) {$data = trim($data);$data = stripslashes($data);$data = htmlspecialchars($data);return $data;}//如果用戶提交了,就按一定格式寫入文件if(isset($_POST['dosubmit'])) {$name = test_input($_POST['username']);$content = test_input($_POST['content']);//字段的分隔使用||,行的分隔使用[n]$mess = "$name||$content||".time()."[n]";//調用寫信息函數writemessage($filename, $mess);}//如果文件存在,則讀文件內容if(file_exists($filename)) {readmessage($filename);}//寫函數function writemessage($filename, $mess) {global $name,$content;//以追加模式打開文件$fp = fopen($filename, "a");//如果鎖定成功if(flock($fp, LOCK_EX+LOCK_NB)) {//將數據寫入文件if($name && $content){fwrite($fp, $mess);}//釋放鎖定flock($fp, LOCK_UN+LOCK_NB);}else{echo "寫入鎖定失敗!";}//關閉文件fclose($fp);}//讀函數function readmessage($filename) {//以只讀模式打開文件$fp = fopen($filename, "r");//讀鎖定flock($fp, LOCK_SH+LOCK_NB); $mess = "";//將數據遍歷到$mess中while(!feof($fp)) {$mess.=fread($fp, 1024);}//釋放鎖定flock($fp, LOCK_UN+LOCK_NB);if(!empty($mess)){$mess = rtrim($mess, "[n]");//通過[n]將每行留言分割并存入數組中$arrmess = explode("[n]", $mess);foreach($arrmess as $m) {//將每行數據使用'||'分割list($username,$content,$t) = explode("||", $m);date_default_timezone_set('PRC');echo "<b>{$username}</b>說:<u>{$content}</u>(".date('Y-m-d H:i:s',$t).")<hr><br>";} }//關閉文件fclose($fp);} ?> <form action="message.php" method="post">用戶:<input type="text" name="username" value="" /><br>內容:<textarea name="content" cols="22" rows="3"></textarea><br><input type="submit" name="dosubmit" value="留言" /><br> </form>

?

文件上傳

  要想通過PHP成功地管理上傳文件,需要通過以下三方面信息:

  1、設置PHP配置文件中的指令:用于精細地調節PHP的文件上傳功能

  

  2、$_FILES多維數組:用于存儲各種與上傳文件有關的信息,其他數據還使用$_POST去接收

  $_FILES["myfile"]["name"]中的值是:客戶端文件系統的文件的名稱

  $_FILES["myfile"]["type"]中的值是:客戶端傳遞的文件的類型

  $_FILES["myfile"]["size"]中的值是:文件的字節的大小

  $_FILES["myfile"]["tmp_name"]中的值是:文件被上傳后在服務器存儲的臨時全路徑

  $_FILES["myfile"]["error"]中的值是:文件上傳的錯誤代碼(php 4.2以后增加的功能)

  伴隨文件上傳時產生的錯誤信息代碼具體如下:

  值為0(UPLOAD_ERR_OK):表示沒有發生任何錯誤

  值為1(UPLOAD_ERR_INI_SIZE):表示上傳文件的大小超出了約定值。文件大小的最大值是在PHP配置文件中指定的,該指令是:upload_max_filesize

  值為2(UPLOAD_ERR_FORM_SIZE):表示上傳文件大小超出了HTML表單隱藏域屬性的MAX_FILE_SIZE元素所指定的最大值

  值為3(UPLOAD_ERR_PARTIAL):表示文件只被部分上傳

  值為4(UPLOAD_ERR_NO_FILE):表示沒有上傳任何文件

  值為6(UPLOAD_ERR_NO_TMP_DIR):表示找不到臨時文件夾(PHP4.3.10和PHP5.0.3)

  值為7(UPLOAD_ERR_CANT_WRITE):表示文件寫入失敗(PHP 5.1.0)

  3、PHP的文件上傳處理函數:用于上傳文件的后續處理

  只要把臨時目錄下的上傳的文件,復制到指定目錄下指定的名字就可以完成上傳

  PHP提供了專門用于文件上傳所使用的is_uploaded_file()和move_uploaded_file()函數

【is_uploaded_file()】

  is_uploaded_file()判斷文件是否是通過 HTTP POST 上傳的

bool is_uploaded_file ( string $filename )

  如果filename所給出的文件是通過 HTTP POST 上傳的則返回?TRUE。這可以用來確保惡意的用戶無法欺騙腳本去訪問本不能訪問的文件

  [注意]為了能使is_uploaded_file()?函數正常工作,必須使用$_FILES['userfile']['tmp_name'],而在從客戶端上傳的文件名$_FILES['userfile']['name']不能正常運作

【move_uploaded_file()】

  move_uploaded_file()方法用于將上傳的文件移動到新位置

bool move_uploaded_file ( string $filename , string $destination )

  本函數檢查并確保由?filename?指定的文件是合法的上傳文件(即通過 PHP 的 HTTP POST 上傳機制所上傳的)。如果文件合法,則將其移動為由?destination?指定的文件

  該函數成功時返回TRUE;如果filename不是合法的上傳文件,不會出現任何操作,move_uploaded_file()將返回?FALSE;如果?filename?是合法的上傳文件,但出于某些原因無法移動,不會出現任何操作,move_uploaded_file()將返回?FALSE。此外還會發出一條警告

<?php header("Content-Type:text/plain;charset=utf-8"); //判斷錯誤 if($_FILES['file1']['error'] > 0) {switch($_FILES['file1']['error']) {case 1:case 2:echo "上傳文件太大";break;case 3:echo "文件只被部分上傳";break;case 4:echo "沒有上傳任何文件";break;default:echo "末知錯誤";}exit; }//判斷類型$arr = explode(".", basename($_FILES['file1']['name']));$hz = array_pop($arr);$allowtype =array("gif", "png", "jpg", "jpeg");if(!in_array($hz, $allowtype)) {echo "上傳的類型不合法";exit;} //判斷大小$maxsize= 1000000;if($_FILES['file1']['size'] > $maxsize) {echo "上傳的文件超過了{$maxsize}字節!";exit;}//隨機文件名$tmp_name = $_FILES['file1']['tmp_name'];$src_name = "./uploads/".date("YmdHis").rand(100, 999).".".$hz;if(move_uploaded_file($tmp_name, "$src_name")){echo '上傳成功';}else{echo '上傳失敗';} ?>

?

文件下載

  簡單的文件下載只需要使用HTML的鏈接標記<a>,并將屬性href的URL值指定為下載的文件即可

<a href="http://baidu.com/test/book.rar">下載</a>

  如果通過上面的代碼實現文件下載,只能處理一些瀏覽器不能默認識別的MIME類型文件,如訪問book.rar時,瀏覽器沒有直接打開,而是彈出一個下載提示框,提示用戶下載還是打開。如果需要下載'.html'、圖片文件等瀏覽器識別的MIME類型文件時,瀏覽器將直接打開該文件

  常見數據格式(MIME)如下

  為了提高文件的安全性,不希望在<a>標簽中給出文件的鏈接,則必須向瀏覽器發送必要的頭信息,以通知瀏覽器將要進行下載文件的處理

【header()】

  PHP使用header()函數發送網頁的HTTP頭部信息

void header ( string $string [, bool $replace = true [, int $http_response_code ]] )

  [注意]header()?必須在任何實際輸出之前調用

<?php
//該行不是必須的
header('Content-type: image/png');
//將文件設置為附件格式(瀏覽器只會下載而不會打開附件格式),設置下載時顯示的文件名
header('Content-Disposition: attachment; filename="downloaded.png"');
//讀取文件并寫入到輸出緩沖
readfile('./uploads/20170315085246943.png'); ?>

?

總結

以上是生活随笔為你收集整理的前端学PHP之文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

四虎在线免费观看视频 | 欧美日韩不卡在线 | 91福利试看 | 久久精品99国产精品日本 | 中文字幕在线看片 | 国产福利小视频在线 | 日韩有码在线观看视频 | 一区二区三区国产精品 | 免费在线观看不卡av | 亚洲六月丁香色婷婷综合久久 | av综合av | 日韩亚洲国产中文字幕 | 欧美激情视频一区二区三区 | 国内精品久久天天躁人人爽 | 99精品乱码国产在线观看 | 碰超在线 | 日韩精品一区二区三区丰满 | 免费a视频 | 色婷婷综合久久久久中文字幕1 | v片在线播放| 久操视频在线免费看 | 国产正在播放 | 制服丝袜一区二区 | 国产夫妻自拍av | 久久久久久国产精品免费 | 一区 二区 精品 | 国产69精品久久99的直播节目 | 天天射天天拍 | 日韩在线免费视频 | 激情五月在线视频 | 9999在线视频 | 亚洲国产精品成人综合 | 色福利网站 | 精品福利视频在线 | 免费观看av网站 | 国产在线高清精品 | 久久99热精品这里久久精品 | 欧美精品亚洲精品 | 亚洲精品999 | 在线国产中文 | 久久不射影院 | 在线观看黄av| 极品国产91在线网站 | 国产在线一区二区 | 草久中文字幕 | 看国产黄色大片 | 99re在线视频观看 | 欧美亚洲另类在线视频 | 欧美精品第一 | 久操视频在线免费看 | 国产人成看黄久久久久久久久 | 青青河边草免费观看 | 手机在线看a | 日韩理论视频 | 超碰国产在线播放 | 99视频国产在线 | www.夜夜爽| 精品91久久久久 | 国产小视频在线观看免费 | 色中文字幕在线观看 | 黄色网在线免费观看 | 色操插| 免费观看黄 | 99久久这里有精品 | av 一区二区三区四区 | 色天天综合久久久久综合片 | 中文字幕 第二区 | 超碰午夜 | 深夜激情影院 | 成年人在线免费看视频 | 在线观看中文av | 91在线免费观看网站 | 国产精品免费观看在线 | 日韩欧美在线观看一区二区三区 | 丁香婷婷激情啪啪 | 日韩亚洲在线视频 | 精品免费| 亚洲天天在线 | av成人亚洲| 午夜av一区二区三区 | 欧美激情第十页 | 国产丝袜在线 | 欧美日韩视频在线播放 | 91插插插免费视频 | 成人av一二三区 | 在线观看精品视频 | 日韩精品一区二区三区外面 | 久久国语露脸国产精品电影 | 奇米先锋| 97在线观 | 国产一级二级av | 一级国产视频 | 在线视频电影 | 中文字幕在线播出 | 九热在线| 国产精品观看在线亚洲人成网 | 亚洲另类交 | 亚洲干视频在线观看 | 一区二区三区在线观看 | 91精品国产综合久久福利 | 欧美成人黄色 | 日本精品在线视频 | 91传媒激情理伦片 | 国产少妇在线观看 | 又粗又长又大又爽又黄少妇毛片 | 黄色av高清| 亚洲精品在线视频网站 | 在线观av | 黄色亚洲片 | 综合天天久久 | 成人av影视在线 | 亚洲欧美日韩精品久久奇米一区 | 最新色站| 99热网站 | 久久久久亚洲精品成人网小说 | 国产精品麻豆免费版 | 色av网站| 久久久电影 | 欧美成人h版电影 | 日韩免费三区 | 黄色三级视频片 | 在线播放 日韩专区 | 国产精品99久久久 | 天天插天天爱 | 久久精国产 | 日韩欧美中文 | 免费观看一区二区三区视频 | 国际av在线 | 日韩在线免费播放 | 欧美xxxx性xxxxx高清 | 国内精品视频在线播放 | 国产成人精品一区二三区 | 在线免费黄色av | 91av中文字幕 | 久久激情视频免费观看 | 久草视频手机在线 | 免费在线成人av电影 | 最新国产在线观看 | 亚洲va在线va天堂 | 久久特级毛片 | 碰超在线观看 | 丁香花在线视频观看免费 | 午夜精品一区二区三区免费 | 国内精品久久久久国产 | 国产亚洲成av片在线观看 | 丝袜美腿亚洲综合 | 黄色在线观看www | 在线 视频 一区二区 | 国内精品视频在线 | 在线亚洲激情 | 麻豆视频在线免费观看 | 亚洲高清视频一区二区三区 | 日韩素人在线观看 | 国产精品一区二区三区在线播放 | 欧美性猛片, | 日韩在线免费高清视频 | 色香蕉在线视频 | 99视频精品 | 中文字幕在线观看日本 | 午夜精品成人一区二区三区 | 日日夜夜操av | 亚洲成人免费观看 | 99久久精品国产亚洲 | a久久久久 | 91视频 - 88av| www亚洲精品 | 国产成人黄色在线 | 深爱综合网 | 日韩a级黄色| 成人久久毛片 | a视频免费在线观看 | 天天干夜夜想 | 久久精品网站视频 | 欧美色图视频一区 | 免费三及片| 国产一区视频免费在线观看 | 国产成人高清 | 91视频 - v11av | 欧美高清视频不卡网 | 国产亚洲精品久久久久久移动网络 | 日日夜夜免费精品视频 | a特级毛片 | 在线观看网站av | 超碰97国产在线 | 国产精品麻豆一区二区三区 | 亚洲精品视频在线观看视频 | a√天堂中文在线 | 久久国内视频 | 国产精品女人久久久 | 欧美成人久久 | 亚洲人精品午夜 | 欧美激情片在线观看 | 欧美精品一区二区在线观看 | 中文字幕在线免费观看视频 | 一级c片 | 日韩三区在线观看 | 精品视频免费看 | 国色天香第二季 | 黄色成人在线观看 | 91亚色在线观看 | 国产精品剧情在线亚洲 | 成人av片在线观看 | 永久免费视频国产 | 国产亚洲婷婷免费 | 国产 日韩 欧美 中文 在线播放 | 97久久精品午夜一区二区 | 久久久www免费电影网 | 婷婷丁香在线 | 色姑娘综合 | 97天堂| 二区视频在线观看 | 97精品国产97久久久久久粉红 | 久久在线免费观看 | 国产成人精品在线 | 99久久99久久免费精品蜜臀 | 成人黄色免费在线观看 | 国产精品入口麻豆www | 国产日韩三级 | 人人爽影院| 伊人婷婷综合 | 国产大陆亚洲精品国产 | 欧美人牲 | 99久久精品免费看国产 | 亚洲精品乱码久久久久久蜜桃欧美 | 操操色| 国产91在线免费视频 | 夜夜操天天干, | av电影 一区二区 | 久久久影视 | 8x成人在线 | 国产中文字幕一区 | 91精品国产麻豆国产自产影视 | 久久狠狠一本精品综合网 | 免费一级片久久 | 日韩大片在线播放 | 久久精品国产亚洲精品2020 | 色综合咪咪久久网 | 96精品在线| 黄色av电影 | 亚洲国产成人精品在线观看 | 亚洲午夜久久久久久久久 | 九九热精 | 久久影视精品 | 亚洲精品字幕 | 久久99精品久久久久久 | 97在线免费观看 | 国产亚洲精品bv在线观看 | 欧美日韩在线精品一区二区 | 中文字幕视频在线播放 | 91在线视频免费观看 | 亚洲一级免费观看 | 国产亚洲精品久久19p | 天天天在线综合网 | 五月天婷亚洲天综合网精品偷 | 成人性生交大片免费看中文网站 | 亚洲精品资源在线 | 丁香花在线视频观看免费 | 97天天干 | 91禁在线观看 | 在线观看亚洲视频 | 久久亚洲私人国产精品va | 中文字幕在线观看网站 | 99久久婷婷| 色综合天天狠天天透天天伊人 | 亚洲精品videossex少妇 | 激情欧美xxxx | 97精品国产97久久久久久免费 | 最近中文字幕大全中文字幕免费 | 亚洲在线免费视频 | 久久综合久色欧美综合狠狠 | 99久久久久 | 2019av在线视频| 婷婷开心久久网 | 99在线精品免费视频九九视 | 99在线观看精品 | 久久国产精品色婷婷 | 免费看的国产视频网站 | 国产精品久久久久免费 | 伊人五月婷 | 欧美性色综合网站 | 国产1区2区3区精品美女 | av黄色在线播放 | 亚洲精品美女久久久久网站 | 超碰97在线资源 | 99久久精品免费看国产四区 | 亚洲精品mv在线观看 | 一区二区欧美在线观看 | 亚洲人成网站精品片在线观看 | 日本精品久久久久久 | 日本在线观看视频一区 | 美女网站黄免费 | 亚洲一级在线观看 | 高潮久久久 | 亚洲精品视 | 国产亚洲精品美女久久 | 亚洲一区尤物 | 国产成人精品av久久 | 亚洲天堂社区 | 欧美激情视频在线观看免费 | 日日夜夜天天 | 亚洲小视频在线观看 | 中文字幕一区二区三区在线播放 | 久久婷亚洲五月一区天天躁 | 久久1电影院 | 天天色天天射天天操 | 国产精品国产三级国产专区53 | 欧美视频不卡 | 亚洲人成在线电影 | 97精品在线 | 成人黄色在线观看视频 | 国产第一页福利影院 | 国产视频 亚洲精品 | 国产精品久久二区 | 波多野结衣在线中文字幕 | 四虎5151久久欧美毛片 | 欧美国产日韩一区 | 欧美另类亚洲 | 免费网址你懂的 | 成人av免费在线观看 | 国内99视频 | 欧美日比视频 | 日韩久久片 | 国产资源在线视频 | 天天色天天操天天爽 | 免费高清在线观看成人 | 97综合视频 | 久久久久久久久久免费 | 不卡av免费在线观看 | 日韩高清免费在线观看 | 精品久久久久国产免费第一页 | 9免费视频 | 国产精品美女久久久久久网站 | 国产经典 欧美精品 | 免费看成人片 | 成人97视频一区二区 | 久久国产免费视频 | 人人澡人人添人人爽一区二区 | 丁香导航 | 五月激情丁香婷婷 | 四虎亚洲精品 | 日韩精选在线观看 | 成av在线| 日韩av电影手机在线观看 | 美国三级黄色大片 | 久久99国产综合精品 | 免费观看国产精品 | 成人久久免费视频 | 欧美性色黄 | 久久亚洲欧美日韩精品专区 | 日本爱爱片 | 在线观看免费av片 | 精品一区在线看 | 国产成人av免费在线观看 | 天天摸日日摸人人看 | 日日操天天爽 | 8x成人在线 | 日韩视频一二三区 | av成人亚洲 | 国产精品久久一区二区三区不卡 | 一区二区三区高清在线观看 | 天天色天天干天天色 | 黄色大片日本免费大片 | 涩涩成人在线 | 一级做a视频 | 亚洲国产高清在线观看视频 | 久久精品中文字幕少妇 | 在线精品视频免费播放 | 亚洲最新在线 | 国内久久久 | 999成人国产| 美国av片在线观看 | 精品麻豆入口免费 | 91视频这里只有精品 | 日韩r级在线 | 白丝av在线 | 天天综合网久久综合网 | 日韩亚洲欧美中文字幕 | 国产成人免费高清 | 精品美女在线观看 | 日韩在线观看视频中文字幕 | 国产精品成人自产拍在线观看 | 91成版人在线观看入口 | 久久亚洲欧美 | 国产黄色片在线免费观看 | 成人一级黄色片 | 欧美伊人网 | 日韩精品一区二区三区在线视频 | 国产精品美女久久久久久久网站 | 人人干狠狠操 | 亚洲精品久久久久中文字幕二区 | av片免费播放 | 日韩电影久久 | 国产精品99久久久久久武松影视 | 日韩久久精品一区二区三区 | 国产精品毛片一区视频播不卡 | 日韩在线观看三区 | 在线国产片 | 欧美网站黄色 | 国产成人精品av | 又粗又长又大又爽又黄少妇毛片 | 中文字幕丝袜制服 | av中文字幕在线看 | 久久视频中文字幕 | 免费看黄在线看 | 国产九九精品视频 | 97综合视频 | 欧美日韩中文字幕视频 | 韩国精品一区二区三区六区色诱 | 97在线观看免费视频 | 狠狠色丁香婷婷综合久久片 | 国产 一区二区三区 在线 | 精品二区久久 | 免费av看片 | 色视频在线观看免费 | 国产二级视频 | 久久精品视频在线免费观看 | 五月天网站在线 | 久久精品国产99 | 天天操夜夜拍 | 亚洲在线免费视频 | 国产中文自拍 | 中文字幕国产精品一区二区 | 超碰人人草| 免费观看黄色12片一级视频 | 国产黄色av网站 | 欧美日韩国产网站 | 国产高清专区 | 在线观看视频精品 | 在线免费视 | av超碰在线观看 | 国产精品av免费在线观看 | 五月婷婷免费 | 国产精品欧美一区二区三区不卡 | 成人国产一区二区 | 国内精品久久久久久中文字幕 | 91亚洲精品久久久中文字幕 | 啪啪激情网 | 日本特黄特色aaa大片免费 | 香蕉精品视频在线观看 | 国产成人777777 | 成人久久精品视频 | 久久精品99久久久久久2456 | 99自拍视频在线观看 | 在线看v片 | 欧美三级高清 | 日韩精品最新在线观看 | 免费视频你懂的 | 国内精品久久天天躁人人爽 | 精品九九九九 | 婷婷成人在线 | 久久精品一区二区三区国产主播 | 国产91大片 | 日日夜夜精品免费观看 | 午夜精品一二三区 | 久久综合精品国产一区二区三区 | 久久久久福利视频 | 日韩欧美高清在线 | 亚洲91网站 | 一区二区成人国产精品 | 极品嫩模被强到高潮呻吟91 | 精品人人人人 | 天天做天天爱夜夜爽 | 天天干,天天射,天天操,天天摸 | 99久久精品国产亚洲 | 国产原创av片 | 97精品国产97久久久久久久久久久久 | 五月天狠狠操 | 久久久久一区 | 91在线免费播放 | 97超级碰碰碰碰久久久久 | 欧美精品一区二区三区四区在线 | 午夜视频色 | 狠狠躁夜夜a产精品视频 | 国产亚洲欧美日韩高清 | 亚洲黄色免费观看 | 天天干天天综合 | 色综久久| 婷婷丁香色综合狠狠色 | av黄色免费在线观看 | 国产精品网红福利 | 美女福利视频一区二区 | 日韩v在线91成人自拍 | 黄色a在线 | 91成人精品 | 国产区高清在线 | 久久久久久久久黄色 | 中文字幕资源在线观看 | 在线观看深夜视频 | 五月天综合网 | 亚洲天天在线日亚洲洲精 | 五月婷婷久草 | 夜夜躁日日躁狠狠躁 | 日本中文字幕在线看 | 日韩在线观看网站 | 久久99国产综合精品 | 国产精品久免费的黄网站 | 国产精品资源在线 | 色婷婷综合视频在线观看 | 在线成人小视频 | 久久久国产精华液 | 视频一区二区在线 | 国产免费又爽又刺激在线观看 | www.香蕉视频在线观看 | 夜夜嗨av色一区二区不卡 | 国产三级久久久 | 亚洲va欧美va国产va黑人 | 亚洲另类xxxx| 国产精品久久久久久电影 | 一区二区中文字幕在线 | 久久99久久99精品 | 欧洲一区二区在线观看 | 亚洲更新最快 | 极品美女被弄高潮视频网站 | 欧美性网站 | 又色又爽又黄 | 91成人精品视频 | 日韩欧美高清视频在线观看 | 好看av在线 | 成人久久| 激情在线网站 | 最近中文字幕免费大全 | 欧美先锋影音 | 91九色蝌蚪视频 | 久久99精品久久久久久久久久久久 | 国产v在线观看 | 欧美精品久久久久久 | 中文字幕高清有码 | 亚洲精品国产欧美在线观看 | 97超碰人人网 | 天天av在线播放 | 久久久久久国产精品久久 | 福利一区在线视频 | 国产午夜三级一区二区三桃花影视 | 91久色蝌蚪| 久操久 | 国产一级大片在线观看 | 91九色视频在线播放 | 99久久99久久免费精品蜜臀 | 午夜影院先 | 99色视频| 久久久久久久久久久久国产精品 | 亚洲国产精品激情在线观看 | 国产精品亚洲片夜色在线 | 亚洲免费在线播放视频 | 97超碰免费在线观看 | 香蕉在线视频观看 | 色播五月激情五月 | 特黄色大片| 亚洲国产日本 | 狠狠色噜噜狠狠狠狠 | 91精品人成在线观看 | 日日夜夜操操操操 | 西西4444www大胆视频 | 国产不卡一区二区视频 | 在线黄av| 啪嗒啪嗒免费观看完整版 | 久久精品网址 | 狠狠色伊人亚洲综合网站野外 | 精品久久网 | 国产高清小视频 | 2019中文在线观看 | 日本h视频在线观看 | 久久久久久毛片精品免费不卡 | 91av视频在线免费观看 | 欧美伦理一区二区 | 麻豆国产精品永久免费视频 | av在线电影播放 | 天堂av影院 | 粉嫩av一区二区三区四区在线观看 | 美女久久一区 | 日韩在线不卡视频 | 中文字幕4 | 二区视频在线 | 91麻豆精品国产91 | 最新av在线播放 | 视频高清| 亚洲午夜久久久久久久久 | 美女av在线免费 | 天堂av中文字幕 | 日韩精品国产一区 | 日本久久久久久久久久久 | 日韩中文在线电影 | www色综合 | 国产在线超碰 | 久久综合色婷婷 | 97人人澡人人添人人爽超碰 | 国产精品一区久久久久 | 亚洲人人精品 | 日日碰夜夜爽 | www.神马久久| 中文字幕精品www乱入免费视频 | 在线观看黄色的网站 | 激情综合久久 | 美女免费视频一区二区 | 五月婷婷综合激情 | 尤物一区二区三区 | 在线观看成人小视频 | 区一区二区三在线观看 | 欧美孕交vivoestv另类 | 97热视频| 人人爽人人爽人人爽学生一级 | 新版资源中文在线观看 | 成人av地址 | 韩国av免费观看 | 久久久综合九色合综国产精品 | 91大神精品视频在线观看 | 日韩在线观看影院 | 一级黄色在线视频 | 97色婷婷人人爽人人 | 丁香五月亚洲综合在线 | 婷婷丁香激情综合 | 91插插视频 | 91福利社区在线观看 | 国产青春久久久国产毛片 | 久久久国产精品一区二区中文 | 最近中文字幕在线 | www.天堂av| 成年人在线观看视频免费 | 成人av在线影院 | 色婷婷综合久久久久中文字幕1 | 99九九99九九九视频精品 | 色婷婷成人网 | 精品国产免费一区二区三区五区 | 亚州视频在线 | 亚洲aaa级 | 久久久久久综合网天天 | 中文字幕在线一二 | 日韩xxxx视频 | 久久人人爽视频 | wwwav视频| 亚洲激情在线播放 | 国产精品视频免费在线观看 | 成人av中文字幕 | 天天干夜夜夜 | 久久久麻豆精品一区二区 | 欧美成人性网 | 日韩免费视频一区二区 | 精品日本视频 | 国产在线a | 欧美一级专区免费大片 | www天天操| 成 人 黄 色视频免费播放 | 激情综合五月婷婷 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 欧美日韩在线播放一区 | 国产黑丝一区二区 | 欧美激情精品久久久久久 | 成人动漫精品一区二区 | 九九久久影院 | 五月婷婷丁香网 | av中文字幕在线看 | 久久久电影网站 | 黄色一级大片在线免费看产 | 久青草影院 | 国产午夜激情视频 | 你操综合 | 天天干天天干天天干 | 国产精品理论片在线播放 | 欧美日本高清视频 | 欧美一级裸体视频 | 天天干婷婷| www.日本色 | h动漫中文字幕 | 午夜久久久影院 | 亚洲91视频| 日本精品一 | av电影免费观看 | 国产污视频在线观看 | 亚洲精品综合一二三区在线观看 | av在线影视 | 久久论理 | 久久久午夜精品理论片中文字幕 | 国产一二区在线观看 | 日本不卡一区二区 | 视频成人永久免费视频 | 久久艹在线观看 | 日韩精品1区2区 | 婷婷五月情| 视频在线精品 | 波多野结衣资源 | 日日日日干 | 超碰精品在线 | 91在线日韩 | 国产精品丝袜 | 亚洲精品视频观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲第五色综合网 | 麻豆影视网站 | 日韩久久精品一区二区三区下载 | 国产97视频在线 | 日韩网站免费观看 | 在线91精品 | 天天干天天做 | 久久精品日本啪啪涩涩 | 成 人 黄 色 视频播放1 | 亚洲成人免费观看 | 午夜日b视频| 中文字幕人成乱码在线观看 | 五月黄色 | 欧美无极色 | 欧美日本不卡 | 亚洲天天在线 | 在线精品观看 | 免费观看黄 | 一级欧美黄 | 国产精品成人久久 | 欧美日韩有码 | 狠狠干天天操 | 久久久久国产一区二区三区 | 免费av大全| 91成人免费观看视频 | 在线v片免费观看视频 | 欧美久久成人 | 欧美国产高清 | 国产亚洲婷婷 | 在线观看国产区 | 亚洲专区路线二 | www.伊人网 | 久久精品网站视频 | 国产三级视频 | 亚洲一区免费在线 | 91精品国产九九九久久久亚洲 | 精产嫩模国品一二三区 | 国产精品麻豆三级一区视频 | 国产日韩精品在线 | 丁香六月婷婷激情 | 中国一级片在线 | 婷婷色网址 | 日韩免费av网址 | 99热官网 | 精品中文字幕在线观看 | freejavvideo日本免费 | 菠萝菠萝蜜在线播放 | 人人精久 | 丁香花在线视频观看免费 | 国内精品久久久久影院优 | 欧美一级片在线播放 | 欧美日韩一区二区三区在线观看视频 | 五月婷婷在线综合 | 美女免费网站 | 欧美三人交 | 日韩欧美在线观看一区二区三区 | 久久天天拍 | 黄色av电影在线观看 | 中文字幕 国产视频 | 精品视频一区在线 | 爱爱av网| 精品国产精品一区二区夜夜嗨 | 国产一区精品在线观看 | 美女视频免费一区二区 | 福利电影久久 | 欧美孕妇与黑人孕交 | 国产自产高清不卡 | 成av人电影| 99在线精品视频观看 | 一区二区激情 | 国产精品久久久久一区 | 国产视频第二页 | 成片免费观看视频 | 激情综合六月 | 最近免费观看的电影完整版 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 日韩高清一 | 天天搞天天 | 精品国内自产拍在线观看视频 | 久久综合狠狠综合 | 成人试看120秒 | 日本精品视频网站 | 美女视频久久久 | 欧美另类重口 | 91亚州| 中文字幕国产一区 | 久久电影色 | 波多野结衣综合网 | 婷婷99| 精品久久久久久久久久 | 亚洲国产精品第一区二区 | 久久精品播放 | 精品av在线播放 | 欧美福利在线播放 | 成年人在线电影 | 亚洲精品视频在线观看网站 | 丁香婷婷久久久综合精品国产 | 美女网站视频一区 | 91精品久久久久 | 亚洲国产一区二区精品专区 | 国产精品v a免费视频 | 在线观看视频色 | 亚洲精品视频在线看 | www.五月天激情 | 国产成人av综合色 | 91自拍视频在线观看 | 日韩欧美一区二区三区在线 | 91精品国产综合久久久久久久 | 亚洲国产中文字幕 | av高清网站在线观看 | 97在线成人 | 欧美久久久久久 | 色香com.| 高清av中文字幕 | 成+人+色综合 | 天天色天天骑天天射 | 月丁香婷婷 | 亚洲资源在线观看 | 国内久久精品视频 | 国产视频在线观看一区 | 成人小视频在线观看免费 | 久久婷婷影视 | 国产成人免费网站 | 国产手机视频在线观看 | 91在线精品播放 | 毛片无卡免费无播放器 | 精品国产观看 | 免费看黄色大全 | 国产精品99久久免费黑人 | 久久久免费看片 | 欧美日韩一区二区三区视频 | 天天操天天操天天干 | www天天干 | 精品国产视频在线观看 | 成人小视频在线 | 免费 在线 中文 日本 | 精品一区在线 | 色婷婷激情电影 | 制服丝袜在线91 | 欧美一级xxxx | 日韩在线观看视频网站 | 久久中国精品 | 日韩精品免费一区二区在线观看 | 毛片美女网站 | 黄色一二级片 | 日韩黄色在线 | 色综合 久久精品 | 日韩av片无码一区二区不卡电影 | 色综合天天视频在线观看 | 久久精品男人的天堂 | 免费av免费观看 | 久久精品国产精品亚洲 | 亚洲精品中文字幕在线观看 | 中文字幕在线免费97 | 久久久久免费观看 | 婷婷视频导航 | 99色在线观看 | 狠狠久久伊人 | 黄色小说网站在线 | 中文字幕视频一区 | 女人18毛片a级毛片一区二区 | 国产糖心vlog在线观看 | 91视频a| 国产精品情侣视频 | 国产精久久久久久妇女av | 欧美 亚洲 另类 激情 另类 | 五月导航 | 国产一区二区在线影院 | 99在线精品观看 | 日韩精品久久中文字幕 | 午夜体验区 | 五月精品 | 欧美性爽爽 | 插婷婷 | 国产丝袜制服在线 | 97人人添人澡人人爽超碰动图 | 91精品久久久久久综合乱菊 | 亚洲在线成人精品 | 91精品毛片 | 久草视频99 | 丝袜美女在线观看 | 麻豆久久 | 久久精品视频网站 | 久操伊人| 91色在线观看视频 | 天天草天天操 | 韩日色视频 | 久久毛片网 | 日韩精品一区二区三区视频播放 | 亚洲国产精品一区二区尤物区 | 日韩av电影一区 | 久久av福利 | 天天干天天想 | 国产剧情在线一区 | 精品伊人久久久 | 欧美一级片免费 | 久久久精品亚洲 | 日韩区视频 | 欧美日韩高清一区二区 国产亚洲免费看 | 在线免费观看国产视频 | 五月开心激情网 | 成人va在线观看 | 91麻豆精品国产91久久久无需广告 | 免费看黄在线网站 | 欧美性另类 | 午夜精品剧场 | 久久免费精品国产 | 中文字幕在线观看一区二区三区 | 91日韩在线播放 | 在线观看视频你懂的 | 99夜色| 日日色综合| 成人午夜性影院 | 91在线视频免费播放 | 狠狠狠狠狠狠狠干 | 亚洲电影院 | 色偷偷网站视频 | 国产精品国产三级国产 | 欧美不卡视频在线 | 一区二区三区四区在线免费观看 | 亚洲国产字幕 | 久草视频资源 | 亚洲年轻女教师毛茸茸 | 国内外成人在线 | 视频国产精品 | 欧美一区二区三区四区夜夜大片 | 久久av伊人 | 玖玖玖在线观看 | 亚洲经典精品 | 一本大道久久精品懂色aⅴ 五月婷社区 | 天堂网在线视频 | 亚洲成aⅴ人片久久青草影院 | 在线视频99 | 日本99精品 | 日韩在线影视 | 97电影院网 | 国产精品自产拍在线观看中文 | 久久综合久久综合这里只有精品 | 午夜精品在线看 | 国产日韩精品一区二区 | 草久草久| 在线影院中文字幕 | 一级一片免费观看 | 玖玖在线播放 | 在线观看aa | 亚洲成熟女人毛片在线 | 国产69精品久久久久99 | 色姑娘综合网 | 激情深爱 | 国产99久久久国产精品免费看 | 国产一级做a爱片久久毛片a | 开心激情久久 | 精品999 | 激情影院在线 | 园产精品久久久久久久7电影 | 狠狠伊人 | 又黄又刺激视频 | 夜夜狠狠 | 国产在线看一区 | 国内三级在线 | 九九导航 | 久久看片网站 | 免费在线成人 | 久久久精品 | 99精品色 | 欧美在线视频精品 | 99综合电影在线视频 | h视频日本| 在线 日韩 av| 黄色三级视频片 | 国产精品日韩在线 | 日韩动漫免费观看高清完整版在线观看 | 在线看欧美 | 天天操天天射天天爱 | 国产伦理剧 | 中文乱码视频在线观看 | 人人草在线观看 | 中文字幕区 | 国内精品久久久久久久久久久久 | 欧美最猛性xxxxx亚洲精品 | 91在线免费视频观看 | 久久免费电影 | 午夜成人免费影院 | 亚洲一区黄色 | 日韩伦理一区二区三区av在线 | 成年人在线观看 | 69精品久久 | 久久国内精品视频 | 国产精品成人一区二区 | 国内精品一区二区 | 毛片在线播放网址 | 正在播放一区二区 | 国内精品久久久久久久影视麻豆 | 久久艹精品| 人人玩人人添人人澡超碰 | 黄色片免费电影 | 免费在线播放黄色 | 人人爽人人爽人人片av免 | 在线日韩精品视频 | 在线看成人 | 久久久久久福利 | 色吊丝在线永久观看最新版本 | 日韩乱理| 亚洲黄色av网址 | 国产做a爱一级久久 | 国产精品嫩草55av | 狠狠色狠狠色综合日日92 | www.eeuss影院av撸 | 麻豆视频免费入口 | av资源网在线播放 | 国产精品美女久久久久久 | 国产中文字幕一区二区 |