1 写入文件
@$fp=fopen("$DOCUMENT_ROOT/order.txt", "ab");
if(!$fp){
echo "open file error" ;
exit;
}
$outputstring="date:"." \t tire:".$tire." \t oil:".$oil." \t spark:".$sparkqty." \n ";
fwrite($fp, $outputstring,strlen($outputstring));
fclose($fp);
相关函数语法:
fopen(filename,mode,include_path,context) 打开文件或者 URL。
filename: 必需。规定要打开的文件或 URL。
module:必需。规定要求到该文件/流的访问类型
include_path:可选。如果也需要在 include_path 中检索文件的话,可以将该参数设为 1 或 TRUE。
context:可选。规定文件句柄的环境。Context 是可以修改流的行为的一套选项。
fwrite(file,string,length)写入文件(可安全用于二进制文件)
file:必须.打开的文件($fp)
string:必需。规定要写入文件的字符串。
ftp:可选。规定要写入的最大字节数。
注意:如果需要换行的话,需使用"\n"来表示,在'\n'会解释成字符串
fclose($fp):关闭文件
2读取文件
@$fp=fopen("$DOCUMENT_ROOT/order.txt", "rb");
if(!$fp){
echo "open file error" ;
exit;
}
while (!feof($fp)){
$order=fgets($fp,99);
echo $order."<br/>";
}
相关函数语法:
feof(file) 数检测是否已到达文件末尾
file:必需。规定要检查的打开文件。
fgets(file,length) 函数从文件指针中读取一行
file:必需。规定要读取的文件。
length:可选。规定要读取的字节数。默认是 1024 字节。
说明
从 file 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(要看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。
若失败,则返回 false。
相关读取文件的函数:
fgetss(file,length,tags)//从打开的文件中读取一行并过滤掉 HTML 和 PHP 标记
file:必需。规定要读取的文件。
length:可选。规定要读取的字节数。默认是 1024 字节。该参数在 PHP 5 之前是必需的
tags: 可选。规定不会被删除的标签。
示例:
$file = fopen("$DOCUMENT_ROOT/index.html","r");
echo fgetss($file,1024,"<h1>");
fclose($file);
文件内容:<html><body><h1>It works!</h1></body></html>
输出的内容:<h1>It works!</h1>
fgetcsv(file,length,separator,enclosure)//从文件指针中读入一行并解析 CSV 字段。
file:必需。规定要检查的文件。
length:可选。规定行的最大长度。必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。在 PHP 5 之前是必需的。如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。
separator: 可选。设置字段分界符(只允许一个字符),默认值为逗号。
enclosure:可选。设置字段环绕符(只允许一个字符),默认值为双引号。该参数是在 PHP 4.3.0 中添加的。
示例:
<?php
$file = fopen("contacts.csv","r");
while(! feof($file))
{
print_r(fgetcsv($file));
}
fclose($file);
?>
contacts.csv文件:
George, John, Thomas, USA
James, Adrew, Martin, USA
输出内容:
Array
(
[0] => George
[1] => John
[2] => Thomas
[3] => USA
Array
(
[0] => James
[1] => Adrew
[2] => Martin
[3] => USA
)
读取整个文件相关文件
readfile(filename,include_path,context)//输出一个文件。
file: 必需。规定要读取的文件。
include_path:可选。如果也想在 include_path 中搜索文件,可以使用该参数并将其设为 true。
context:可选。规定文件句柄的环境。Context 是可以修改流的行为的一套选项。
<?php
echo readfile("$DOCUMENT_ROOT/order.txt");
?>
fpassthru(file)输出文件指针处的所有剩余数据。该函数将给定的文件指针从当前的位置读取到 EOF,并把结果写到输出缓冲区。
file:必需。规定要读取的打开文件或资源。
注释:当在 Windows 系统中将 fpassthru() 用于二进制文件时,要确保在用 fopen() 打开文件时在 mode 中附加了 b 来将文件以二进制方式打开。鼓励在处理二进制文件时使用 b 标志,即使系统并不需要,这样可以使脚本的移植性更好。
示例:
<?php
$file = fopen("$DOCUMENT_ROOT/order.txt","r");
// 读取第一行
fgets($file);
// 把文件的其余部分发送到输出缓存
echo fpassthru($file);
fclose($file);
?>
file(path,include_path,context)// 函数把整个文件读入一个数组中。
path: 必需。规定要读取的文件。
include_path:可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 "1"。
context:可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 null,则忽略。
<?php
echo "<br/>";
print_r(file("$DOCUMENT_ROOT/order.txt"));
?>
//显示的内容
Array ( [0] => date: tire:2 oil:2 spark:2 [1] => date: tire:2 oil:2 spark:2 [2] => )
fgetc(file)//从文件指针中读取一个字符。
file:必需。规定要检查的文件。
示例
<?php
$file = fopen("test.txt","r");
while (! feof ($file))
{
echo fgetc($file);
}
fclose($file);
?>
fread(file,length)//读取文件(可安全用于二进制文件)
file:必需。规定要读取打开文件。
length:必需。规定要读取的最大字节数。
提示:如果只是想将一个文件的内容读入到一个字符串中,请使用 file_get_contents(),它的性能比 fread() 好得多。
示例:
<?php
$file = fopen("test.txt","r");
fread($file,"10");
fclose($file);
?>
//从文件中读取 10 个字节
其他的文件操作
file_exists(path)//检查文件或目录是否存在。如果指定的文件或目录存在则返回 true,否则返回 false。
语法
filesize(filename)//函数返回指定文件的大小。
若成功,则返回文件大小的字节数。若失败,则返回 false 并生成一条 E_WARNING 级的错误。
unlink(filename,context)//函数删除文件。若成功,则返回 true,失败则返回 false。
filename:必需。规定要删除的文件。
context:可选。规定文件句柄的环境。Context 是可修改流的行为的一套选项。
rewind(file)将文件指针的位置倒回文件的开头。若成功,则返回 true。若失败,则返回 false。
fseek(file,offset,whence)//在打开的文件中定位。该函数把文件指针从当前位置向前或向后移动到新的位置,新位置从文件头开始以字节数度量。成功则返回 0;否则返回 -1。注意,移动到 EOF 之后的位置不会产生错误。
file:必需。规定要在其中定位的文件。
offset:必需。规定新的位置(从文件头开始以字节数度量)。
whence:可选。可能的值:
•SEEK_SET - 设定位置等于 offset 字节。默认。
•SEEK_CUR - 设定位置为当前位置加上 offset。
•SEEK_END - 设定位置为文件末尾加上 offset (要移动到文件尾之前的位置,offset 必须是一个负值)。
示例:
<?php
$file = fopen("test.txt","r");
// 读取第一行
fgets($file);
// 倒回文件的开头
fseek($file,0);
?>
ftell(file)//在打开文件中的当前位置。该函数返回文件指针的当前位置。若失败,则返回 false。
flock(file,lock,block)//函数锁定或释放文件。若成功,则返回 true。若失败,则返回 false
file:必需。规定要锁定或释放的已打开的文件。
lock:必需。规定要使用哪种锁定类型。
block:可选。若设置为 1 或 true,则当进行锁定时阻挡其他进程。
lock 参数可以是以下值之一:
•要取得共享锁定(读取的程序),将 lock 设为 LOCK_SH(PHP 4.0.1 以前的版本设置为 1)。
•要取得独占锁定(写入的程序),将 lock 设为 LOCK_EX(PHP 4.0.1 以前的版本中设置为 2)。
•要释放锁定(无论共享或独占),将 lock 设为 LOCK_UN(PHP 4.0.1 以前的版本中设置为 3)。
•如果不希望 flock() 在锁定时堵塞,则给 lock 加上 LOCK_NB(PHP 4.0.1 以前的版本中设置为 4)。
示例:
<?php
$file = fopen("test.txt","w+");
// 排它性的锁定
if (flock($file,LOCK_EX))
{
fwrite($file,"Write something");
// release lock
flock($file,LOCK_UN);
}
else
{
echo "Error locking file!";
}
fclose($file);
?>