每次听丽江小倩都会想起大理古城,苍山雪,洱海月,丽江束河古镇,茶马古道,玉龙雪山,泸沽湖,还有虎跳峡,香格里拉,那里的普达措森林公园,藏传佛教,还有纯洁朴实的人们
在操作文件之前呢,我们应该打开文件,使用fopen()函数,注意,在打开文件时应该务必小心,一不小心可能就会把文件内容删掉,
1 打开文件 语法
resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
参数说明:参数path字符串包含欲打开的文件路径及文件名;参数mode字符串则代表着流形态,提供了“r”、“w”、“a”、“+”、“b”、“r”六种模式选择符号,常用的模式如下:
“r” :以只读方式打开文件,该文件必须存在。
“w” :打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
“a” :以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
“r+” :以可读写方式打开文件,该文件必须存在。
“w+” :打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
“a+”:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
“rb” :只读打开一个二进制文件,只允许读数据。
“wb” :只写打开或建立一个二进制文件,只允许写数据。
“ab” :追加打开一个二进制文件,并在文件末尾写数据。
“rb+” :读写打开一个二进制文件,允许读写数据,文件必须存在。
“wb+” :读写打开或建立一个二进制文件,允许读和写。
“ab+” :读写打开一个二进制文件,允许读,或在文件末追加数据。
“rt” :只读打开一个文本文件,只允许读数据。
“wt” :只写打开或建立一个文本文件,只允许写数据。
“at” :追加打开一个文本文件,并在文件末尾写数据。
“rt+” :读写打开一个文本文件,允许读和写。
“wt+” :读写打开或建立一个文本文件,允许读写。
“at+” :读写打开一个文本文件,允许读,或在文件末追加数据。
打开方式总结:
① 打开是否为二进制,用“b”标识;
② 读写方式有以下几种:只读、只写、读写、追加只写、追加读写。
③ 对文件是否必须存在,以及存在时是清空还是追加会有不同的响应。具体判断如下图:
第三个参数
$use_include_path是可选的,改参数在配置文件中php.ini中指定一个路径,
如果希望服务器在这个路径下打开所指定的文件,则可设置为1或者true
<?php
$handle = fopen("/home/result/file.txt",'r')
$handle = fopen("/home/result/file.gif","wb")
$handle = fopen("http://www.example.com/","r")
$handle = fopen("ftp://user:password@example.com/somefile.txt","w")
?>
如果在打开和写入文件遇到问题,在windows上
<?php
$handle = fopen("c:\\data\\info.txt",'r');
?>
2 关闭文件
对文件操作之后,应该关闭文件,否则会引起错误
bool fclose(resource $handle)
该函数将handle指向的文件关闭,成功时返回true,失败时返回false
<?php
$handle = fopen('/file.txt','r')
fclose($handle)
?>
1 读取整个文件的内容
- readfile()
该函数用于读入一个文件,并将其写入到输出缓冲,如果出现错误就返回false
int readfile(string $filename [,bool $use_include_path ,[resource $context]])
- file()
可以读取文件的内容
array file(string $filename [,bool $use_include_path ,[resource $context]])
<?php
$lines = file("http://www.example.com/");
foreach($lines as $line_num => $line){
echo "第".$line_num."行的内容是".$line;
}
?>
- file_get_contents()
能是用来将文件的内容读入到一个字符串
string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
<?php
readfile('me.txt')
$f_arr = file('me.txt')
foreach($f_arr as $count){
echo $count;
}
$f_str = file_get_content('me.txt');
echo $f_str;
?>
读取一行数据
string fgets ( resource $handle [, int $length ] )
从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。
string fgetss(resource $handle [,int $length [,string $allowable_tags]])
<?php
$fopen = fopen("me.php",'rb')
while(!feof($fopen)){
echo fgets($fopen);
}
fclose($fopen);
while(!feof($fopen)){
echo fgetss($fopen);
}
?>
读取一字符
string fgetc(resource $handle)
从文件句柄中获取一个字符。
<?php
$fopen = fopen("this.txt","rb");
while(false!==($chr=fgetc($fopen))){
echo $chr;
}
fclose($fopen);
?>
string fread(int $handle,int $length);
fread() 从文件指针 handle 读取最多 length 个字节。 该函数在遇上以下几种情况时停止读取文件:
- 读取了 length 个字节
- 到达了文件末尾(EOF)
<?php
$fopen = fopen("this.txt","rb");
echo fread($fopen,38);
fclose($fopen);
?>
写入文件内容
int fwrite(resource $handle, string $string [,int $length])
handle
文件系统指针,是典型地由 fopen() 创建的 resource (资源)。
string
The string that is to be written.
length
如果指定了 length,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况。
注意如果给出了 length 参数,则 magic_quotes_runtime 配置选项将被忽略,而 string 中的斜线将不会被抽去。
int file_put_contents(string $filename,string $string [,int $length]);
filename
要被写入数据的文件名。
data
要写入的数据。类型可以是 string , array 或者是 stream 资源(如上面所说的那样)。
如果 data 指定为 stream 资源,这里 stream 中所保存的缓存数据将被写入到指定文件中,这种用法就相似于使用 stream_copy_to_stream() 函数。
参数 data 可以是数组(但不能为多维数组),这就相当于 file_put_contents($filename, join(’’, $array))。
flags
flags 的值可以是 以下 flag 使用 OR (|) 运算符进行的组合。
共同学习,写下你的评论
评论加载中...
作者其他优质文章