zoukankan      html  css  js  c++  java
  • 前端PHP入门-029-文件操作-掌握级别

    人生只有三天,活在昨天的人迷惑;活在明天的人等待;活在今天的人最踏实。你永远无法预测意外和明天哪个来得更早,所以,我们能做的,就是尽最大的努力过好今天。请记住:今天永远是昨天死去的人所期待的明天。

    file_put_contents写入文件

    我们先来学习第一种写入文件的方式:

    int file_put_contents ( string ,string写入数据])

    功能:向指定的文件当中写入一个字符串,如果文件 不存在则创建 文件。返回的是写入的 字节长度

    1. <?php
    2. $data = "胖先生,很宅!";
    3. $numbytes = file_put_contents('D:/pang.ini', $data);
    4. echo '写入的长度:'.$numbytes;
    5. if($numbytes){
    6. echo '写入成功,我们读取看看结果试试:';
    7. echo file_get_contents('D:/pang.ini');
    8. }else{
    9. echo '写入失败或者没有权限,注意检查';
    10. }
    11. ?>

    !

    我们发现写入文件也挺简单的。按照这个函数的格式,指定文件,写入字符串数据就可以了。

    fwrite配合fopen进行写入操作

    int fwrite ( resource ,string写入的字符串 [, int 长度])

    注:fwrite的别名函数是 fputs

    读取的时候使用,接下来我们用fwrite加上fopen中的w,写入模式来进行文件写入。

    我们来看一下特点:

    写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建。

    注意:在下面的实验中,你可以试试新建个 pangsir.txt文件向里面写入内容.

    1. <?php
    2. $filename = 'D:/pangsir.txt';
    3. $fp= fopen($filename, "w");
    4. $len = fwrite($fp, '我是一只来自南方的狼,一直在寻找心中的花姑娘');
    5. fclose($fp);
    6. print $len .'字节被写入了 ';
    7. ?>

    运行结果:

    总结:
    1.不论有没有新建都会打开文件 重新写入
    2.原有的文件内容会被覆盖掉
    3.文件不存在会创建

    那我们来对比一下以下几个模式的不同:

    模式 说明
    r 只能读不能使用fwrite写
    r+ 可操作读、写
    w 只可以写功能
    w+ 即可读又可以写

    我们来通过实验证明一下:

    1. <?php
    2. $filename = 'D:/test.txt';
    3. $fp= fopen($filename, "r+");
    4. $len = fwrite($fp, '我是一只来自南方的狼,一直在寻找心中的花姑娘');
    5. fclose($fp);
    6. print $len .'字节被写入了 ';
    7. ?>

    实验时可以把r后面的+号去掉。

    我们通过实验,确实发现使用r模式,在文件存在的时候可以进行写入数据,只用r的话,写入是不成功的。

    a模式和w模式的不同

    同样是下面的这段代码,我们改为a模式。

    1. <?php
    2. $filename = 'D:/test.txt';
    3. $fp= fopen($filename, "a");
    4. $len = fwrite($fp,'读大学迷茫了,人总是要靠自己的');
    5. echo $len .'字节被写入了 ';
    6. ?>

    打开网页执行这段代码,你会发现:每刷新一次,文件中就会多一段
    :读大学迷茫了,人总是要靠自己的。

    总结:

    模式 总结
    w 每次写入会干掉原有文件的内容,文件不存在都会创建
    a 每次写入都会向文件的尾端追加内容

    注:a+ 是增强的追加功能。可以读取时也可以使用。

    x模式和w模式的不同

    这段代码我们再实验一次,改为x模式:

    1. <?php
    2. $filename = 'D:/test.txt';
    3. $fp= fopen($filename, "x");
    4. $len = fwrite($fp,'读大学迷茫了,人总是要靠自己的');
    5. echo $len .'字节被写入了 ';
    6. ?>

    我们会发现:

    1. 文件存在的时候会报错
    2. 如果把$filename 改成其他的文件名,就可以了。但是,再次刷新的时候又报错了
    3. x+ 是增强的x模式。读取时也可以使用。

    重命名文件

    bool rename(,新名);

    功能:这个函数返回一个bool值,将旧的名字改为新的名字。

    1. <?php
    2. //旧文件名
    3. $filename = 'D:/pangsir.txt';
    4. //新文件名
    5. $filename2 = $filename . '.old';
    6. //复制文件
    7. rename($filename, $filename2);
    8. ?>

    我们打开目录,我们可以看看效果,你会发现把指定的文件,复制了一份到了目标路径。

    复制文件

    复制文件,就相当于是克隆技术,将一个原来的东西再克隆成一个新的东西。两个长得一模一样。

    bool copy(源文件,目标文件)

    功能:将指定路径的源文件,复制一份到目标文件的位置。

    1. <?php
    2. //旧文件名
    3. $filename = 'D:/pangsir.txt';
    4. //新文件名
    5. $filename2 = $filename . '_new';
    6. //修改名字。
    7. copy($filename, $filename2);
    8. ?>

    总结:
    你会通过上面的例子,发现多出来了一个文件。

    删除文件

    删除文件就是将指定路径的一个文件删除,不过这个删除是直接删除。使用的是windows电脑,你在回收站看不到这个文件。

    你只会发现,这个文件消失了。

    bool unlink(指定路径的文件)

    1. <?php
    2. $filename = 'd:/test.txt';
    3. if (unlink($filename)) {
    4. echo "删除文件成功 $filename! ";
    5. } else {
    6. echo "删除 $filename 失败! ";
    7. }
    8. ?>




  • 相关阅读:
    C# httpclient获取cookies实现模拟web登录
    C# httpclient获取cookies实现模拟web登录
    长连接与短连接的区别以及使用场景
    长连接与短连接的区别以及使用场景
    vuejs项目性能优化总结
    vuejs项目性能优化总结
    C# 发送HTTP请求(可加入Cookies)
    C# 发送HTTP请求(可加入Cookies)
    集合框架系列教材 (十六)- 其他
    集合框架系列教材 (十五)- 关系与区别
  • 原文地址:https://www.cnblogs.com/pangxiansheng/p/c009cb5d5e2daac7344c3a86c376dd0e.html
Copyright © 2011-2022 走看看