文章内容相关的函数

原创 2019-01-15 09:47:48 328
摘要: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,上手快一些。

发布手记

热门词条