所在的位置: Web开发 >> HTNL >> php文件的相关操作

php文件的相关操作

文件的操作

PHP文件操作API

1、文件创建/打开

fopen()的第一个参数包含被打开的文件名,第二个参数规定打开文件的模式。

fopen("webdictionary.txt","r")

模式

描述

r

打开文件为只读。文件指针在文件的开头开始。

w

打开文件为只写。删除文件的内容或创建一个新的文件,如果它不存在。文件指针在文件的开头开始。

a

打开文件为只写。文件中的现有数据会被保留。文件指针在文件结尾开始。创建新的文件,如果文件不存在。

x

创建新文件为只写。返回FALSE和错误,如果文件已存在。

r+

打开文件为读/写、文件指针在文件开头开始。

w+

打开文件为读/写。删除文件内容或创建新文件,如果它不存在。文件指针在文件开头开始。

a+

打开文件为读/写。文件中已有的数据会被保留。文件指针在文件结尾开始。创建新文件,如果它不存在。

x+

创建新文件为读/写。返回FALSE和错误,如果文件已存在。

2、文件写入

fwrite()向文件写入内容

fwrite(file,string,length)

file

必需。规定要写入的打开文件。

string

必需。规定要写入打开文件的字符串。

length

可选。规定要写入的最大字节数。

fopen函数也用于创建文件。也许有点混乱,但是在PHP中,创建文件所用的函数与打开文件的相同。如果您用fopen()打开并不存在的文件,此函数会创建文件

$myfile=fopen("testfile.txt","w")

?PHP

$myfile=fopen("newfile.txt","w")

$txt="BillGates\n";

fwrite($myfile,$txt);

$txt="SteveJobs\n";

fwrite($myfile,$txt);

fclose($myfile);

?

请注意,我们向文件"newfile.txt"写了两次。在每次我们向文件写入时,在我们发送的字符串$txt中,第一次包含"BillGates",第二次包含"SteveJobs"。在写入完成后,我们使用fclose()函数来关闭文件。

BillGates

SteveJobs

PHP覆盖:往已有文件里面写数据,所有已存在的数据会被擦除并以一个新文件开始。

?PHP

$myfile=fopen("newfile.txt","w")ordie("Unabletoopenfile!");

$txt="MickeyMouse\n";

fwrite($myfile,$txt);

$txt="MinnieMouse\n";

fwrite($myfile,$txt);

fclose($myfile);

?

如果现在我们打开这个"newfile.txt"文件,Bill和Steve都已消失,只剩下我们刚写入的数据:

MickeyMouseMinnieMouse

file_put_contents:向文件写入内容,等同依次调用fopen,fwrite以及fclose函数。

file_put_contents(file,data,mode,context)

参数

描述

file

必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。

data

可选。规定要写入文件的数据。可以是字符串、数组或数据流。

mode

可选。规定如何打开/写入文件。可能的值:

·FILE_USE_INCLUDE_PATH

·FILE_APPEND

·LOCK_EX

context

可选。规定文件句柄的环境。

context是一套可以修改流的行为的选项。若使用null,则忽略。

?PHP

echofile_put_contents("test.txt","HelloWorld.Testing!");

?//26

3、文件读取

fread()函数读取打开的文件。

fread的第一个参数包含待读取文件的文件名,第二个参数规定待读取的最大字节数。

fread(file,length)

参数

描述

file

必需。规定要读取打开文件。

length

必需。规定要读取的最大字节数。

提示:如果只是想将一个文件的内容读入到一个字符串中,请使用file_get_contents(),它的性能比fread()好得多。

例子1

从文件中读取10个字节:

?PHP

$file=fopen("test.txt","r");

fread($file,"10");

fclose($file);

?

例子2

读取整个文件:

?PHP

$file=fopen("test.txt","r");

fread($file,filesize("test.txt"));

fclose($file);

?

fgets()函数用于从文件读取单行。

注释:调用fgets()函数之后,文件指针会移动到下一行。

?PHP

$myfile=fopen("webdictionary.txt","r");

echofgets($myfile);

?

fgetc()函数用于从文件中读取单个字符。

?PHP

$myfile=fopen("webdictionary.txt","r");

//输出单字符直到end-of-file

while(!feof($myfile)){

echofgetc($myfile);

}

fclose($myfile);

?

file_get_contents()把整个文件读入一个字符串。

file()函数把整个文件读入一个数组中。

与file_get_contents()类似,不同的是file()将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败,则返回false

file(path,include_path,context)

path

必需。规定要读取的文件。

include_path

可选。如果也想在include_path中搜寻文件的话,可以将该参数设为"1"。

context

可选。规定文件句柄的环境。

context是一套可以修改流的行为的选项。若使用null,则忽略。

例子

?PHP

print_r(file("test.txt"));

?

输出:

Array

(

[0]=HelloWorld.Testingtesting!

[1]=Anotherday,anotherline.

[2]=Ifthearraypicksupthisline,

[3]=thenisitapickupline?

)

4、检查文件是否存在

file_exists检查文件或目录是否存在。

如果指定的文件或目录存在则返回true,否则返回false。

file_exists(path)

参数

描述

path

必需。规定要检查的路径。

?PHP

echofile_exists("test.txt");

?

检查文件是否可读写执行

is_readable:检查文件是否可读。

如果由file指定的文件或目录存在并且可读,则返回TRUE。

is_readable(file)

参数

描述

file

必需。规定要检查的文件。

?PHP

$file="test.txt";

if(is_readable($file))

{

echo("$fileisreadable");

}

else

{

echo("$fileisnotreadable");

}

?

//test.txtisreadable

is_writable:检查文件是否是否可写入。

如果文件存在并且可写则返回true。file参数可以是一个允许进行是否可写检查的目录名。

is_writable(file)

参数

描述

file

必需。规定要检查的文件。

?PHP

$file="test.txt";

if(is_writable($file))

{

echo("$fileiswriteable");

}

else

{

echo("$fileisnotwriteable");

}

?

//test.txtiswriteable

is_executable:检查文件是否可执行。

如果文件存在且可执行,则返回true。

is_executable(file)

参数

描述

file

必需。规定要检查的文件。

?PHP

$file="setup.exe";

if(is_executable($file))

{

echo("$fileisexecutable");

}

else

{

echo("$fileisnotexecutable");

}

?

//setup.exeisexecutable

5、文件拷贝

copy:拷贝文件。

将文件从source拷贝到destination。如果成功则返回TRUE,否则返回FALSE。

copy(source,destination)

source

必需。规定要复制的文件。

destination

必需。规定复制文件的目的地。

?PHP

echocopy("source.txt","target.txt");

?//1

6、rename()函数重命名文件或目录

若成功,则该函数返回true。若失败,则返回false。

rename(oldname,newname,context)

参数

描述

oldname

必需。规定要重命名的文件或目录。

newname

必需。规定文件或目录的新名称。

context

可选。规定文件句柄的环境。context是可修改流的行为的一套选项。

?PHP

rename("images","pictures");

?

6、文件删除

unlink:删除文件。

若成功,则返回true,失败则返回false。

unlink(filename,context)

?PHP

$file="test.txt";

if(!unlink($file))

{

echo("Errordeleting$file");

}

else

{

echo("Deleted$file");

}

?

7、取得文件大小、类型、修改时间信息

filesize()函数返回指定文件的大小。

若成功,则返回文件大小的字节数。若失败,则返回false

filesize("test.txt");

7、filetype()函数返回指定文件或目录的类型。

若成功,则返回7种可能的值。若失败,则返回false。

可能的值

fifo

char

dir

block

link

file

unknown

filetype(filename)

filename

必需。规定要检查的文件。

例题1

?PHP

echofiletype("test.txt");

?//file

例题2

?PHP

echofiletype("images");

?//dir

8、filemtime()函数返回文件内容上次的修改时间

若成功,则时间以Unix时间戳的方式返回。若失败,则返回false。

filemtime(filename)

参数

描述

filename

必需。规定要检查的文件。

?PHP

echofilemtime("test.txt");

echo"Lastmodified:".date("FdYH:i:s.",filemtime("test.txt"));

?

//

//Lastmodified:February:22:46.

9、文件指针函数

fclose()函数用于关闭打开的文件。

?PHP

$myfile=fopen("webdictionary.txt","r");

fclose($myfile);

?

feof()测试文件指针是否到了文件结束的位置。

feof()对于遍历未知长度的数据很有用。

?PHP

$myfile=fopen("webdictionary.txt","r");

while(!feof($myfile)){

echofgets($myfile)."br";

}

fclose($myfile);

?

fseek:在文件指针中定位。

fseek(file,offset,whence)

参数

描述

file

必需。规定要在其中定位的文件。

offset

必需。规定新的位置(从文件头开始以字节数度量)。

whence

可选。(PHP4中新增的)。可能的值:

·SEEK_SET-设定位置等于offset。默认。

·SEEK_CUR-设定位置为当前位置加上offset。

·SEEK_END-设定位置为文件末尾(EOF)加上offset(要移动到文件末尾之前的位置,offset必须是一个负值)。

提示:通过使用ftell()来找到当前位置!

例题

?PHP

$file=fopen("test.txt","r");//readfirstlinefgets($file);//movebacktobeginningoffilefseek($file,0);

?

rewind()函数将文件指针的位置倒回文件的开头。

若成功,则返回true。若失败,则返回false。

rewind(file)

file

必需。规定已打开的文件。

?PHP

$file=fopen("test.txt","r");

//改变文件指针的位置

fseek($file,"15");

//把文件指针设定为0

rewind($file);

fclose($file);

?

ftell():函数返回在打开文件中的当前位置

返回文件指针的当前位置,如果失败则返回FALSE。

ftell(file)ftell(file)

参数

描述

file

必需。规定要检查的已打开文件。

?PHP

$file=fopen("test.txt","r");//printcurrentpositionechoftell($file);//changecurrentpositionfseek($file,"15");//printcurrentpositionagainecho"br/".ftell($file);fclose($file);

?

//

文件的上传和下载

1.文件上传第一步

客服端需要写一个form表单,表单必须是post,还有一个enctype="multipart/form-data"必须设置这个属性

2.第二步服务器端的分析

服务器端用var_dump($_FILES)或者用print_r($_FILES)打印都可以,可以看到$_FILES中保存的上传文件的信息

name:上传文件的名称

type:上传文件的类型

tmp_name:上传到服务器的临时文件名

size:上传文件的大小

error:上传文件的错误号

3.将服务器的临时文件移动到指定的目录下

move_uploaded_file(tmp_name,"指定目录");返回值为boolcopy(tmp_name,"指定目录");返回值为bool

上传文件主要的几点要求:

1、文件上传服务器端的配置(如果是xampp,可以直接找php里面的PHP.init的配置文件)

file_upload=on支持







































北京治疗白癜风总共要多少钱
白癜风治疗用什么方法



转载请注明:http://www.guyukameng.com/html/html1/1031.html