1 PHP文件系统

1.1 PHP文件的读取


文件读取的函数是file_get_contents,可以将整个文件读到一个字符串之中

$content = file_get_constents('./test.test');//不知道为什么我的电脑里面必须要用绝对路径

也可以控制读取内容的开始点以及长度

PHP也提供类似于C语言操作文件的方法,使用fopen,fgets,fread等方法,fgets可以从文件指针中读取一行,freads可以读取指定长度的字符串。

$fp = fopen('./text.txt', 'rb');
while(!feof($fp)) {
echo fgets($fp); //读取一行
}
fclose($fp);

```
$fp = fopen('./text.txt', 'rb');
$contents = '';
while(!feof($fp)) {
$contents .= fread($fp, 4096); //一次读取4096个字符
}
fclose($fp);
```
### 1.2 判断文件是否存在
***
PHP用来判断是否存在的函数有两个is_file和file_exists.
```
if(file_exits($filename)){
echo file_get_contents($filename);
}
```
is_file确切来说是给定的路径是否是一个文件:
```
$filename = './test.txt'
if(is_file($filename)){
echo file_get_contents($filename);
}
```
is_readable 和 is_writeable,顾名思义,就是判断文件是否可以读写
```
if (is_writeable($filename)) {
file_put_contents($filename, 'test');
}
if (is_readable($filename)) {
echo file_get_contents($filename);
```
### 1.3 获取文件属性
***
* fileowner:获得文件的所有者
* filectime:获取文件的创建时间
* filemtime:获取文件的修改时间
* fileatime:获取文件的访问时间

$filename = './test.php';
echo '文件所有者'.fileowner($filename);
echo '文件创建时间'.date('Y-m-d H:i',filectime($filename));
echo '文件修改时间'.date('Y-m-d H:i',filemtime($filename));

1.4 获得文件的大小


文件的大小以字节数表示,我们可以进行转换

$pdfname = '/home/dai/桌面/byte-of-python-chinese-edition.pdf';
$size = filesize($pdfname)/pow(1024,2);
$size = number_format($size, 2);
echo 'byte-of-python-chinese-edition:'.$size.'MB';

1.5 PHP写入文件


与读取文件一样,可以有直接的函数和C风格的写入函数

$filename = './test.txt';
$data = 'test';
file_put_contents($filename, $data);
$fp = fopen('./test.txt', 'w');
fwrite($fp, 'hello');
fwrite($fp, 'world');
fclose($fp);

1.6 删除文件


删除文件

unlink($filename);

删除文件夹

rmdir($filename);

如果文件夹中存在文件,可以先循环删除目录中的所有文件,然后再删除该目录,循环删除可以使用glob函数遍历所有文件。

foreach (glob("*") as $filename) {//glob() 函数返回匹配指定模式的文件名或目录。
unlink($filename);
}

半吊子菜鸟学Web开发 -- PHP学习3-文件的更多相关文章

  1. 半吊子菜鸟学Web开发 -- PHP学习5-数据库

    数据库 1 进行数据库操作的步骤 连接数据库 mysqli_connect 选择数据库 mysqli_select_db 设置文件编码 mysqli_query("set name utf- ...

  2. 半吊子菜鸟学Web开发 -- PHP学习 1-基础语法

    1索引数组 $fruit = array("苹果","香蕉","菠萝"): print_r($fruit); 索引数组的初始化,有三种方式: ...

  3. 半吊子菜鸟学Web开发 -- PHP学习 4 --异常

    PHP异常处理 1 抛出一个异常 与Python的try except类似,PHP用try catch来捕获异常 基本语法 try{ //可能出现错误或异常的代码 //catch表示捕获,Except ...

  4. 半吊子菜鸟学Web开发 -- PHP学习2-正则,cookie和session

    1正则表达式 1.1基本的匹配字符串 $p = '/apple/'; $str = "apple banna"; if (preg_match($p, $str)) { echo ...

  5. 半吊子菜鸟学Web开发1 --配置开发环境

    先说说我自己的情况,我算是一个半吊子菜鸟,对web开发熟练度为0,但是对熟悉C++和Python 所以这里开始记录我学习Web开发的历程,看看我这里学习的程序,能够学到什么地方. 首先是配置环境,我的 ...

  6. 半吊子菜鸟学Web开发6 -- Vscode开发环境配置

    1vscode上手一周不到,终于弄出点门路,终于弄清楚了点vscode的设置是什么样子的了....哭 2就我这两天的使用来看,一般vscode默认只让打开一个文件夹,然后在你打开的文件夹里面自动生成 ...

  7. 半吊子菜鸟学Web开发2 --JavaScript学习1

    JavaScript是一种类C的语言,对于我来说学起来还是蛮轻松的 1 输出 console.log(**); 相当于print console.assert(*);弹窗 2 变量 JS是动态变量 类 ...

  8. 半吊子菜鸟学Web开发4 --Html css学习2

    1<a>标签,链接到另一个页面 <a href="目标网址" title="鼠标滑过显示的文本">链接显示的文本</a> H ...

  9. 半吊子菜鸟学Web开发3 --Html css学习1

    1创建一个html文件,用vscode打开 首先输入一个! 然后就可以开始编辑html文件了 2 整体结构 <!DOCTYPE HTML><html>    <head& ...

随机推荐

  1. suse 12 二进制部署 Kubernetets 1.19.7 - 第06章 - 部署kube-apiserver组件

    文章目录 1.6.部署kube-apiserver 1.6.0.创建kubernetes证书和私钥 1.6.1.生成kubernetes证书和私钥 1.6.2.创建metrics-server证书和私 ...

  2. [办公软件]Mac安装office 2019官方原版安装包并激活

    office 2019介绍 Office 2019 mac简体中文版已经推出,具体包含Word, Excel, PowerPoint, Outlook, OneNote五大套件,注册登陆用户可以漫游文 ...

  3. 【Windows 访问控制】九、AccessCheck 的工作原理

    授权和访问控制组件 下图说明了授权Windows访问控制过程. 在此图中,主题 (由用户启动) 访问对象(如共享文件夹)的过程. 将用户的访问令牌中的信息与对象的安全描述 (AES) 中的访问控制项进 ...

  4. 基于IEC61499标准的组件

    IEC 61499标准通常用于开发分布式控制系统.IEC 61499定义了功能模块(FB, function block)的模型.有三种FB,分别是Basic FB (BFB),Service Int ...

  5. Docker入坑系列(二)

    Docker入坑系列(二) 上一篇我们为Docker创造了一个良好的生活环境,这一篇我们就开始让Docker活起来. 安装Docker ok,原文地址在这里. 当然,我只是自己翻译了一下而已- -跟着 ...

  6. 系统整理qt笔记3

    qtcreator中不能输入中文: https://blog.csdn.net/qq_15725099/article/details/97305507 main.cpp #include " ...

  7. c# 反射实现模型深拷贝

    1.支持属性,不支持字段,支持复杂类型属性 2.泛型集合类支持List<T>与Dictionary<TKey,TValue> 3.如果发现有什么问题,希望大家可以多多指教 // ...

  8. 国产化之银河麒麟安装.NetCore-包管理器方式

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用达梦V8,CPU平台的范围包括x64.龙芯.飞腾.鲲鹏等. 考虑到这些基础产品对.NETCore的支持,最终选择了3.1版 ...

  9. 为游戏编写boss剧情

    教程目录: 1. 小游戏展示 2. 下载游戏引擎 3. 创作一个移动的背景 4. 让阿菌煽动翅膀 5. 让阿菌模拟重力下坠 6. 让阿菌可以摸鱼 7. 编写游戏开始与结束 8. 编写 boss 剧情 ...

  10. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(7)- 从SD/eMMC启动

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MXRTxxx系列MCU的SD/eMMC卡启动. 关于 i.MXRT 启动设备,痞子衡之前写过很多篇文章,都是关于串并行 NO ...