摘要:fopen() 打开文件或路径 rb表示二进制读取 rb+写入文件,文件指针指向开头 fread() 读取文件内容 fread(文件路径,读取长度) 要读取全部内容 长度用filesize() ftell(文件路径)&nb
fopen() 打开文件或路径 rb表示二进制读取 rb+写入文件,文件指针指向开头
fread() 读取文件内容 fread(文件路径,读取长度) 要读取全部内容 长度用filesize()
ftell(文件路径) 获取当前文件指针所在的位置
rewind(文件路径) 将指针回到开头位置
fclose() 关闭文件
file_get_contents() 读取文件,不需要打开文件直接读取
file_put_contents() 写入文件,不需要打开文件直接写入
fread和file_get_contents的区别是 前者需要打开文件,后者不需要。
<?php
//打开文件,rb+ 表示二进制读取写入
//$file = fopen('text.txt','rb+');
//
////写入文件 fwrite 写入文件操作时 会覆盖对应字符数量
//
//var_dump(fwrite($file,'PHP中文网'));
//var_dump(fwrite($file,''.PHP_EOL));//换行
//
////fputs 和fwrite的功能是一样的
//var_dump(fputs($file,'我们说好的。'));
//
//fclose($file);
$file = fopen('text.txt','ab+');
var_dump(fputs($file,'我用写入方式,不清空内容.'));
echo ftell($file);
rewind($file);
echo fread($file,filesize('text.txt'));
?>
<?php
/**
* 文件读取其他函数
* fgetc() 从文件中获取一个字符
* fgets() 从文件中获取一行字符
* fgetss() 从文件中获取一行字符,并过滤html
*
*/
$file = fopen('text.txt','rb+');
echo fgetc($file).'<br>'; //获取一个字符
echo fgets($file).'<br>'; //获取一行
echo fgetss($file).'<br>'; //获取一行并过滤html
rewind($file);
while(!feof($file)){
echo fgetc($file);
}
echo '<hr>';
//ftruncate 截取文件内容为指定长度,会改变文件大小,返回的是一个布尔值
var_dump(ftruncate($file,10));
?>
<?php
/**
* csv格式文件函数
* fgetcsv(文件路径,长度,字段分隔符) 读取csv文件内容,长度必须大于 CVS 文件内最长的一行。输出的是一个数组
* fputcsv 写入csv文件内容
*/
$file = fopen('text.csv','rb+');
//读取csv文件
//var_dump(fgetcsv($file));
echo '<pre>';
//while ($row=fgetcsv($file)){
// print_r($row);
//}
$data = [
[1,'html','略懂'],
[2,'js','不懂'],
[3,'php','正在学']
];
//写入csv文件
//var_dump(fputcsv($file,$data));
//
//遍历数组写入
//foreach ($data as $v){
// fputcsv($file,$v,'~');
//}
while ($row = fgetcsv($file,18,'~')){
print_r($row);
}
?>
<?php
/**
* 文件内容相关其他函数
* file_get_contents() 获取文件内容,不用打开文件 不能过滤html
* file_put_contents() 写入文件内容,不用打开文件 文件存在会清空文件内容再写入,文件不存在则自动创建,若要追加数据而不覆盖原内容,需要传入第三个参数FILE_APPEND
* strip_tags() 过滤html
*/
//echo file_get_contents('text2.txt');//读取文件内容
//file_put_contents('text2.txt','php中文网',FILE_APPEND); //追加写入
$data = [
'name'=>'韦小宝',
'age'=>'23'
];
//var_dump(file_put_contents('text.txt',serialize($data))); //使用序列化来进转换数组 然后写入
//var_dump(unserialize(file_get_contents('text.txt'))); //反序列化,将序列化的代码转换为之前的样子
//file_put_contents('text2.txt',json_encode($data)); //将数组转换为json格式并写入到文件
var_dump(json_decode(file_get_contents('text2.txt'))); //json_decode 将json格式的文件反转换
批改老师:查无此人批改时间:2019-01-15 09:58:44
老师总结:作业完成的不错。windows和linux有一些区别的,现在可以先了解下,等后面接触linux,上手快一些。