fopen()
函数
使用方法:
fopen(filename,mode,include_path,context)
filename:必需。规定要打开的文件或 URL。
mode:必需。规定要求到该文件/流的访问类型。
include_path:可选。如果也需要在 include_path 中检索文件的话,可以将该参数设为 1 或TRUE。
context:可选。规定文件句柄的环境。Context 是可以修改流的行为的一套选项。
这些都可以在w3c上查到就不详细写了,这边写一下我自己对feof()
,fgets()
和fgetcsv()
试验。
feof()
:如果文件指针指到了EOF或者出错时返回TURE,否则返回一个错误(包括socket超时),其它情况则返回false。
这个函数对遍历长度未知的数据很有用。如果服务器没有关闭由fsokopen()
所打开的链接,feof()
会一直等到超时而返回true。默认超时时间为60秒。
例子:
$file = fopen("test.txt","r");
while(!feof($file))
{
echo fgets($file)."<br/>"
}
fgets()
:从file指向的文件中读取一行并返回长度最多为length-1字节的字符串。碰到换行符、EOF或者已经读取了length-1字节后停止。如果没有指定length,则默认为1k。(注:file,length为函数所传参数)。
例1:
<?php
$file=fopen("test.txt","r");
echo fgets($file);
fclose($file);
?>
输出类似:
Hello,this is a test file.
例2:
<?php
$file=fopen("test.txt","r");
while(!feof($file))
{
echo fgets($file)."<br/>";
}
fclose($file);
?>
输出类似:
Hello,this is a test file.
There are three lines here.
This is the last line.
fgetss()
:其它和fgets()
函数基本一样,唯独多了一个过滤html标签的功能。
fgetscv()
:从文件中读入一行并解析成csv字段。与fgets()
类似,不同的是fgetcsv()
解析读入的行并找出csv格式的字段,然后返回一个包含这些字段的数组。
注:csv文件中的空行将返回一个包含有单个null字段的数组,不会被当成错误。
csv文件:
1,2,3
2,3,4,6
例1:
<?php
$file=fopen("test.csv","r");
print_r(fgetcsv($file));
fclose($file);
?>
输出类似:
array(
[0]=>1,
[1]=>2,
[2]=>3
)
例2:
<?php
$file=fopen("test.csv","r");
while(!feof($file)){
print_r(fgetcsv($file));
}
fclose($file);
?>
输出类似:
array(
[0]=>1,
[1]=>2,
[2]=>3
)
array(
[0]=>2,
[1]=>3,
[2]=>4,
[3]=>6,
)