1. 文件操作

1.1 打开关闭文件

  1. fopen()

    resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )

    fopen()函数将resource绑定到一个流或句柄。绑定之后。脚本就能够通过句柄与此资源交互;

    例1:以仅仅读方式打开一个位于本地server的文本文件

    $fh = fopen("test.txt", "r");

    例2:以仅仅读方式打开一个远程文件

    $fh = fopen("http://www.baidu.com", "r");

  2. fclose()

    bool fclose ( resource handle )

    将 handle 指向的文件关闭 。假设成功则返回 TRUE。失败则返回 FALSE;

    文件指针必须有效,而且是通过 fopen() 或 fsockopen() 成功打开的;

    尽管每一个请求最后都会自己主动关闭文件。但明白的关闭打开的全部文件是一个好的习惯;

    例:

    1. $fh = fopen("test.txt", "r");
    2. fclose($fh);

1.2 读取文件

php 提供了非常多从文件里读取数据的方法,不仅能够一次仅仅读取一个字符。还能够一次读取整个文件。

  1. fread()

    string fread ( int handle, int length )

    fread()函数从handle指定的资源中读取length个字符,

    当到达EOF或读取到length个字符时读取将停止。

    假设要读取整个文件,使用filesize()函数确定应该读取的字符数;

    例:

    1. $file = "test.txt";
    2. $fh = fopen( $file, "r");
    3. $str = fread($fh, filesize($file));
    4. echo $str;
    5. fclose($fh);
  2. fgets()

    string fgets ( int handle [, int length] )

    fgets()函数从handle指定的资源中读取一行字符。碰到换行符(包含在返回值中)、

    EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况);

    例:

    逐行读取文件

    1. $handle = fopen("data.txt", "r");
    2. while(!feof($handle)){
    3. $content = fgets($handle);
    4. $content= iconv('gbk','utf-8',$content);
    5. echo $content."<br />”;
    6. }
    7. fclose($handle);

    注意:假设没有指定 length。则默觉得 1K,或者说 1024 字节。

  3. file()

    array file ( string $filename [, int $flags = 0 [, resource $context ]])

    file()函数将文件读取到数组中。各元素由换行符分隔。

    例:

    1. $arr = file("test.txt");
    2. print_r($arr);
  4. file_get_contents()

    string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] )

    file_get_contents()函数将文件内容读到字符串中;

    例:

    1. $str = file_get_contents("test.txt");
    2. echo $str;

1.3 写入文件

  1. fwrite()

    int fwrite ( resource handle, string string [, int length] )

    fwrite()函数将string的内容写入到由handle指定的资源中。

    假设指定length參数。将在写入Length个字符时停止。

    例:

    1. $str = "test text";
    2. $fh = fopen("test.txt", "a");
    3. fwrite($fh, $str);
    4. fclose($fh);
  2. file_put_contents()

    int file_put_contents ( string filename, string data [, int flags [, resource context]] )

    file_put_contents()函数将一个字符串写入文件。与依次调用fopen(),fwrite(),fclose()功能一样;

    例:

    1. $str = "hello";
    2. file_put_contents("test.txt", $str);

1.4 复制,重命名,删除文件

  1. copy()

    bool copy ( string source, string dest )

    将文件从 source 复制到 dest。假设成功则返回 TRUE,失败则返回 FALSE。

    例:Copy("test.txt", "test.txt.bak");

  2. rename()

    bool rename ( string oldname, string newname [, resource context] )

    尝试把 oldname 重命名为 newname。 假设成 功则返回 TRUE,失败则返回 FALSE。

    例:rename("test.txt", “test2.txt”);

  3. unlink()

    bool unlink ( string filename )

    删除文件,假设删除成功返回true, 否则返回false;

    例1:

    1. 删除一个文本文件
    2. unlink(“test.txt")。

1.5 读取文件夹

  1. copy()

    bool copy ( string source, string dest )

    将文件从 source 复制到 dest。

    假设成功则返回 TRUE,失败则返回 FALSE。

    例:Copy("test.txt", "test.txt.bak");

  2. rename()

    bool rename ( string oldname, string newname [, resource context] )

    尝试把 oldname 重命名为 newname。 假设成功则返回 TRUE,失败则返回 FALSE。

    例:rename("test.txt", “test2.txt”);

  3. unlink()

    bool unlink ( string filename )

    删除文件。假设删除成功返回true, 否则返回false;

    例1:

    1. 删除一个文本文件
    2. unlink(“test.txt")。
  4. scandir()

    array scandir ( string directory [, int sorting_order [, resource context]] )

    返回一个包含有 directory 中的文件和文件夹的数组;

  5. rmdir()

    bool rmdir ( string dirname )

    删除文件夹

  6. mkdir()

    bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )

    
尝试新建一个由 pathname 指定的文件夹。

1.6 其它文件操作函数

  1. filesize()

    int filesize ( string filename )

    取得文件的大小,以字节为单位

  2. filectime()

    int filectime ( string filename )

    取得文件的创建时间,以unix时间戳方式返回

    例:

    1. $t = filectime("test.txt");
    2. echo date("Y-m-d H:i:s", $t);
  3. fileatime() 返回文件的最后改变时间;

  4. filemtime() 返回文件的最后改动时间;

    注:”最后改变时间”不同于 “最后改动时间”。

    最后改变时间指的是对文件inode数据的不论什么改变。包含改变权限。所属组。拥有者等; 而最后改动时间指的是对文件内容的改动

  5. file_exists() 检查文件或文件夹是否存在,假设存在返回true, 否则返回false;

  6. is_readable() 推断文件是否可读,假设文件存在而且可读,则返回true;

  7. is_writable() 推断文件是否可写。假设文件存在而且可写,则返回true;

1.7 解析文件夹路径函数

  1. basename()

    string basename ( string path [, string suffix] )

    返回路径中的文件名称部份,当指定了可选參数suffix会将这部分内容去掉;

    例:

    1.  

2. 课上练习代码

  1. <?
  2. php
  3. //打开文件
  4. $rh = fopen('PHP_3.txt', 'r+');
  5. //读取文件,第一个參数是文件句柄,第二个是读取方式
  6. //计算文件大小(字节)
  7. $num = filesize('PHP_3.txt');
  8. $str = fread($rh, $num);
  9. echo $str;
  10. //假设设置文件訪问错误,须要去更改文件的权限,属性 --> 右下角--> 开放权限 --> 改为可读可写
  11. echo "<hr>";
  12. //换行读取 识别 enter 不识别 <br>
  13. $str_1 = fgets($rh);
  14. $str_2 = fgets($rh);
  15. //换行读取再次读取还会继续上次的读取位置继续读取
  16. echo $str_1;
  17. echo "<hr>";
  18. echo $str_2;
  19. //file 将文件内容转化为数组,<br>直接转化为换行,回车作为分隔符
  20. $arr = file('PHP_3.txt');
  21. print_r($arr);
  22. echo "<hr>";
  23. //file_get_contents 读取文件内容。返回字符串。而且能够读取外部网络数据
  24. // echo file_get_contents('PHP_3.txt');
  25. //直接读取站点,存到一个文本中,能够直接获取对方的页面静态布局。注意,是静态的!
  26. // $str_3 = file_get_contents('http://www.lanou3g.com');
  27. // file_put_contents('PHP_3.txt', $str_3);
  28. //重命名
  29. // rename('PHP_3.txt', '1.txt');
  30. // rename('1.txt','PHP_3.txt');
  31. //文件拷贝 使用../ 替代上级文件夹
  32. // copy('PHP_3.txt', '../test.txt');
  33. //读取文件夹
  34. //1.打开文件文件夹句柄 .(一个点) 获取本级文件夹 ..(两个点)是上级文件夹
  35. $rh_1 = opendir('.');
  36. // $arr = readdir()
  37. //readdir 获取文件文件夹,这个和 MySQL 一样。必须使用循环取出
  38. while ($num = readdir($rh_1)) {
  39. //读取出来的
  40. echo $num;
  41. echo "<hr>";
  42. }
  43. //读取文件夹
  44. print_r(scandir('.'));
  45. //创建一个新的文件夹
  46. // mkdir('asdasd');
  47. //删除整个文件夹 删除文件夹必须保证文件夹内部没有其它文件
  48. // $is_bool = rmdir('1');
  49. //删除
  50. // unlink('PHP_3.txt');
  51. //获取文件创建时间
  52. echo filectime('PHP_3.txt');
  53. echo "<hr>";
  54. //返回文件最后訪问的时间
  55. echo fileatime('PHP_3.txt');
  56. echo "<hr>";
  57. //解析文件详细名称
  58. echo basename('PHP_3.txt','txt');
  59. echo "<hr>";
  60. //获取当前文件所在的文件夹的名称
  61. echo dirname('file/PHP_3.txt');
  62. echo "<hr>";
  63. //返回全程,拓展名,文件名称
  64. print_r(pathinfo("PHP_3.txt"));
  65. //改动文件文件夹权限
  66. echo "<hr>";
  67. fclose($rh);
  68. fclose($rh_1);
  69. ?
  70. >

H5学习_番外篇_PHP数据库操作的更多相关文章

  1. openresty 学习笔记番外篇:python的一些扩展库

    openresty 学习笔记番外篇:python的一些扩展库 要写一个可以使用的python程序还需要比如日志输出,读取配置文件,作为守护进程运行等 读取配置文件 使用自带的ConfigParser模 ...

  2. openresty 学习笔记番外篇:python访问RabbitMQ消息队列

    openresty 学习笔记番外篇:python访问RabbitMQ消息队列 python使用pika扩展库操作RabbitMQ的流程梳理. 客户端连接到消息队列服务器,打开一个channel. 客户 ...

  3. Opengl_入门学习分享和记录_番外篇01(MacOS上如何在Xcode 开始编辑OpenGL)

    写在前面的废话: 哈哈 ,我可真是勤勉呢,今天又来更新了,这篇文章需要大家接着昨天的番外篇00一起食用! 正文开始: 话不多说,先看代码. 这里主要全是使用的glfwwindowhint 这个函数,他 ...

  4. Opengl_入门学习分享和记录_番外篇00(MacOS上如何给Xcode 适配openGL)

    现在前面的废话:哇这次没有鸽太久,突然想起来还没有介绍如何适配opengl的衍生库.今天一并介绍下,同样看时间允不允许,让我再把之前学到的一些东西再次总结一遍. 正文开始: 首先大家要知道我们的Ope ...

  5. Python学习-day10(番外篇) 阻塞IO 非阻塞IO 同步IO 异步IO

    这个章节的内容是关于IO的概念,谈一谈什么是 阻塞IO 非阻塞IO 同步IO 异步IO.以下摘要是我对这四种IO的一个形象理解. 场景是去去银行办理业务.节点有三个,1)到银行提交申请:2)取号:3) ...

  6. 《30天自制操作系统》学习笔记--番外篇之Mac环境下的工具介绍

    这几天又有点不务正业了,书也没看,一直在搞这个破环境,尝试各种做法,网上各种垃圾信息,浪费了很多时间,说的基本都是废话,不过还是找到了一些,赶紧写下来,不然这个过几天又忘了 首先是环境,我用的是Max ...

  7. vue学习【番外篇】vue-cli脚手架的安装

    大家好,我是一叶,今天和大家分享的是vue-cli脚手架的安装,关于vue-cli的优点,我就不赘述了. 一.检查安装node 安装vue-cli之前,先检查node是否安装.win+R,输入cmd打 ...

  8. 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV

    这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...

  9. Netty学习笔记(番外篇) - ChannelHandler、ChannelPipeline和ChannelHandlerContext的联系

    这一篇是 ChannelHandler 和 ChannelPipeline 的番外篇,主要从源码的角度来学习 ChannelHandler.ChannelHandler 和 ChannelPipeli ...

随机推荐

  1. 创业笔记-Node.js入门之JavaScript与Node.js

    JavaScript与Node.js JavaScript与你 抛开技术,我们先来聊聊你以及你和JavaScript的关系.本章的主要目的是想让你看看,对你而言是否有必要继续阅读后续章节的内容. 如果 ...

  2. C#-入门思维导图

    C#-入门思维导图 百度云盘 链接:http://pan.baidu.com/s/1jI5zMS2 密码:0ypc 如有错误,请告知我

  3. [Hibernate]Access to DialectResolutionInfo cannot be null when &#39;hibernate.dialect&#39; not set

    使用Hibernate官方文档上的下面代码进行測试时报出这个异常. org.hibernate.HibernateException: Access to DialectResolutionInfo ...

  4. 从ORA-27300,ORA-27301到ORA-00064

        近期因为session数量添加,须要调整session,也就是要调整process參数. 看是比較简单的一个问题,却遭遇了ORA-27300,ORA-27301.因为这个涉及到了有关内核參数k ...

  5. iOS定义静态变量、静态常量、全局变量

    静态变量 当我们希望一个变量的作用域不仅仅是作用域某个类的某个对象,而是作用域整个类的时候,这时候就可以使用静态变量. staticstatic修饰的变量,是一个私有的全局变量.C或者Java中sta ...

  6. 5分钟学会 CSS Grid 布局

    欢迎加入前端交流群交流知识&&获取视频资料:749539640 这是一篇快速介绍网站未来布局的文章. Grid 布局是网站设计的基础,CSS Grid 是创建网格布局最强大和最简单的工 ...

  7. (四)Hystrix容错保护

    Feign默认是整合了Ribbon和Hystrix这两个框架,所以代码我们在上一篇的基础上进行修改,启动Eureka,service-hello,Feign 所谓的熔断机制和日常生活中见到电路保险丝是 ...

  8. 整数转罗马数字 C++实现 java实现 leetcode系列(十二)

    罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并 ...

  9. Z 字形变换 C++实现 java实现 leetcode系列(六)

    Z 字形变换  java实现 C++实现  将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 ...

  10. C# Lambda && Linq

    Lambda表达式在C#3.0加入,它是一个匿名函数,可用于创建委托或者表达式树类型,运算符为=>,读作"goes to",=>左侧是变量,右侧是表达式,变量类型可以自 ...