H5学习_番外篇_PHP数据库操作
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");fclose()
bool fclose ( resource handle )将 handle 指向的文件关闭 。假设成功则返回 TRUE。失败则返回 FALSE;
文件指针必须有效,而且是通过 fopen() 或 fsockopen() 成功打开的;
尽管每一个请求最后都会自己主动关闭文件。但明白的关闭打开的全部文件是一个好的习惯;
例:
$fh = fopen("test.txt", "r");
fclose($fh);
1.2 读取文件
php 提供了非常多从文件里读取数据的方法,不仅能够一次仅仅读取一个字符。还能够一次读取整个文件。
fread()
string fread ( int handle, int length )
fread()函数从handle指定的资源中读取length个字符,当到达EOF或读取到length个字符时读取将停止。
假设要读取整个文件,使用filesize()函数确定应该读取的字符数;
例:
$file = "test.txt";
$fh = fopen( $file, "r");
$str = fread($fh, filesize($file));
echo $str;
fclose($fh);fgets()
string fgets ( int handle [, int length] )
fgets()函数从handle指定的资源中读取一行字符。碰到换行符(包含在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况);
例:
逐行读取文件
$handle = fopen("data.txt", "r");
while(!feof($handle)){
$content = fgets($handle);
$content= iconv('gbk','utf-8',$content);
echo $content."<br />”;
}
fclose($handle);注意:假设没有指定 length。则默觉得 1K,或者说 1024 字节。
file()
array file ( string $filename [, int $flags = 0 [, resource $context ]])file()函数将文件读取到数组中。各元素由换行符分隔。
例:$arr = file("test.txt");
print_r($arr);file_get_contents()
string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] )file_get_contents()函数将文件内容读到字符串中;
例:$str = file_get_contents("test.txt");
echo $str;
1.3 写入文件
fwrite()
int fwrite ( resource handle, string string [, int length] )fwrite()函数将string的内容写入到由handle指定的资源中。
假设指定length參数。将在写入Length个字符时停止。
例:$str = "test text";
$fh = fopen("test.txt", "a");
fwrite($fh, $str);
fclose($fh);file_put_contents()
int file_put_contents ( string filename, string data [, int flags [, resource context]] )file_put_contents()函数将一个字符串写入文件。与依次调用fopen(),fwrite(),fclose()功能一样;
例:
$str = "hello";
file_put_contents("test.txt", $str);
1.4 复制,重命名,删除文件
copy()
bool copy ( string source, string dest )将文件从 source 复制到 dest。假设成功则返回 TRUE,失败则返回 FALSE。
例:
Copy("test.txt", "test.txt.bak");rename()
bool rename ( string oldname, string newname [, resource context] )尝试把 oldname 重命名为 newname。 假设成 功则返回 TRUE,失败则返回 FALSE。
例:
rename("test.txt", “test2.txt”);unlink()
bool unlink ( string filename )删除文件,假设删除成功返回true, 否则返回false;
例1:
删除一个文本文件
unlink(“test.txt")。
1.5 读取文件夹
copy()
bool copy ( string source, string dest )将文件从 source 复制到 dest。
假设成功则返回 TRUE,失败则返回 FALSE。
例:
Copy("test.txt", "test.txt.bak");rename()
bool rename ( string oldname, string newname [, resource context] )尝试把 oldname 重命名为 newname。 假设成功则返回 TRUE,失败则返回 FALSE。
例:
rename("test.txt", “test2.txt”);unlink()
bool unlink ( string filename )删除文件。假设删除成功返回true, 否则返回false;
例1:
删除一个文本文件
unlink(“test.txt")。scandir()
array scandir ( string directory [, int sorting_order [, resource context]] )返回一个包含有 directory 中的文件和文件夹的数组;
rmdir()
bool rmdir ( string dirname )删除文件夹
mkdir()
bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )
尝试新建一个由 pathname 指定的文件夹。
1.6 其它文件操作函数
filesize()
int filesize ( string filename )取得文件的大小,以字节为单位
filectime()
int filectime ( string filename )取得文件的创建时间,以unix时间戳方式返回
例:
$t = filectime("test.txt");
echo date("Y-m-d H:i:s", $t);fileatime() 返回文件的最后改变时间;
filemtime() 返回文件的最后改动时间;
注:”最后改变时间”不同于 “最后改动时间”。
最后改变时间指的是对文件inode数据的不论什么改变。包含改变权限。所属组。拥有者等; 而最后改动时间指的是对文件内容的改动
file_exists() 检查文件或文件夹是否存在,假设存在返回true, 否则返回false;
is_readable() 推断文件是否可读,假设文件存在而且可读,则返回true;
is_writable() 推断文件是否可写。假设文件存在而且可写,则返回true;
1.7 解析文件夹路径函数
basename()
string basename ( string path [, string suffix] )返回路径中的文件名称部份,当指定了可选參数suffix会将这部分内容去掉;
例:
2. 课上练习代码
<?
php
//打开文件
$rh = fopen('PHP_3.txt', 'r+');
//读取文件,第一个參数是文件句柄,第二个是读取方式
//计算文件大小(字节)
$num = filesize('PHP_3.txt');
$str = fread($rh, $num);
echo $str;
//假设设置文件訪问错误,须要去更改文件的权限,属性 --> 右下角--> 开放权限 --> 改为可读可写
echo "<hr>";
//换行读取 识别 enter 不识别 <br>
$str_1 = fgets($rh);
$str_2 = fgets($rh);
//换行读取再次读取还会继续上次的读取位置继续读取
echo $str_1;
echo "<hr>";
echo $str_2;
//file 将文件内容转化为数组,<br>直接转化为换行,回车作为分隔符
$arr = file('PHP_3.txt');
print_r($arr);
echo "<hr>";
//file_get_contents 读取文件内容。返回字符串。而且能够读取外部网络数据
// echo file_get_contents('PHP_3.txt');
//直接读取站点,存到一个文本中,能够直接获取对方的页面静态布局。注意,是静态的!
// $str_3 = file_get_contents('http://www.lanou3g.com');
// file_put_contents('PHP_3.txt', $str_3);
//重命名
// rename('PHP_3.txt', '1.txt');
// rename('1.txt','PHP_3.txt');
//文件拷贝 使用../ 替代上级文件夹
// copy('PHP_3.txt', '../test.txt');
//读取文件夹
//1.打开文件文件夹句柄 .(一个点) 获取本级文件夹 ..(两个点)是上级文件夹
$rh_1 = opendir('.');
// $arr = readdir()
//readdir 获取文件文件夹,这个和 MySQL 一样。必须使用循环取出
while ($num = readdir($rh_1)) {
//读取出来的
echo $num;
echo "<hr>";
}
//读取文件夹
print_r(scandir('.'));
//创建一个新的文件夹
// mkdir('asdasd');
//删除整个文件夹 删除文件夹必须保证文件夹内部没有其它文件
// $is_bool = rmdir('1');
//删除
// unlink('PHP_3.txt');
//获取文件创建时间
echo filectime('PHP_3.txt');
echo "<hr>";
//返回文件最后訪问的时间
echo fileatime('PHP_3.txt');
echo "<hr>";
//解析文件详细名称
echo basename('PHP_3.txt','txt');
echo "<hr>";
//获取当前文件所在的文件夹的名称
echo dirname('file/PHP_3.txt');
echo "<hr>";
//返回全程,拓展名,文件名称
print_r(pathinfo("PHP_3.txt"));
//改动文件文件夹权限
echo "<hr>";
fclose($rh);
fclose($rh_1);
?
>
H5学习_番外篇_PHP数据库操作的更多相关文章
- openresty 学习笔记番外篇:python的一些扩展库
openresty 学习笔记番外篇:python的一些扩展库 要写一个可以使用的python程序还需要比如日志输出,读取配置文件,作为守护进程运行等 读取配置文件 使用自带的ConfigParser模 ...
- openresty 学习笔记番外篇:python访问RabbitMQ消息队列
openresty 学习笔记番外篇:python访问RabbitMQ消息队列 python使用pika扩展库操作RabbitMQ的流程梳理. 客户端连接到消息队列服务器,打开一个channel. 客户 ...
- Opengl_入门学习分享和记录_番外篇01(MacOS上如何在Xcode 开始编辑OpenGL)
写在前面的废话: 哈哈 ,我可真是勤勉呢,今天又来更新了,这篇文章需要大家接着昨天的番外篇00一起食用! 正文开始: 话不多说,先看代码. 这里主要全是使用的glfwwindowhint 这个函数,他 ...
- Opengl_入门学习分享和记录_番外篇00(MacOS上如何给Xcode 适配openGL)
现在前面的废话:哇这次没有鸽太久,突然想起来还没有介绍如何适配opengl的衍生库.今天一并介绍下,同样看时间允不允许,让我再把之前学到的一些东西再次总结一遍. 正文开始: 首先大家要知道我们的Ope ...
- Python学习-day10(番外篇) 阻塞IO 非阻塞IO 同步IO 异步IO
这个章节的内容是关于IO的概念,谈一谈什么是 阻塞IO 非阻塞IO 同步IO 异步IO.以下摘要是我对这四种IO的一个形象理解. 场景是去去银行办理业务.节点有三个,1)到银行提交申请:2)取号:3) ...
- 《30天自制操作系统》学习笔记--番外篇之Mac环境下的工具介绍
这几天又有点不务正业了,书也没看,一直在搞这个破环境,尝试各种做法,网上各种垃圾信息,浪费了很多时间,说的基本都是废话,不过还是找到了一些,赶紧写下来,不然这个过几天又忘了 首先是环境,我用的是Max ...
- vue学习【番外篇】vue-cli脚手架的安装
大家好,我是一叶,今天和大家分享的是vue-cli脚手架的安装,关于vue-cli的优点,我就不赘述了. 一.检查安装node 安装vue-cli之前,先检查node是否安装.win+R,输入cmd打 ...
- 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV
这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...
- Netty学习笔记(番外篇) - ChannelHandler、ChannelPipeline和ChannelHandlerContext的联系
这一篇是 ChannelHandler 和 ChannelPipeline 的番外篇,主要从源码的角度来学习 ChannelHandler.ChannelHandler 和 ChannelPipeli ...
随机推荐
- RabbitMQ学习总结(2)——安装、配置与监控
一.安装 1.安装Erlang 1)系统编译环境(这里采用linux/unix 环境) ① 安装环境 虚拟机:VMware® Workstation 10.0.1 build Linux系统:Cent ...
- [AngularJS]Chapter 5 与服务器交互
第八章有关于缓存的东西. [通过$http交互] 传统的AJAX请求如下 var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange ...
- poj3101--Astronomy(分数的最小公倍数)
题目链接:id=3101">点击打开链接 题目大意:有n个行星,给出每个行星的旋转的周期.问最少多少时间后n个行星会在一条直线上,初始点在一起,不存在全部的行星都有同一个周期 如果A行 ...
- 使用docker搭建hadoop分布式集群
使用docker搭建部署hadoop分布式集群 在网上找了非常长时间都没有找到使用docker搭建hadoop分布式集群的文档,没办法,仅仅能自己写一个了. 一:环境准备: 1:首先要有一个Cento ...
- Qt 3D教程(三)实现对模型材质參数的控制
Qt 3D教程(三)实现对模型材质參数的控制 蒋彩阳原创文章,首发地址:http://blog.csdn.net/gamesdev/article/details/47131841.欢迎同行前来探讨. ...
- elasticsearch的javaAPI之index
Index API 原文:http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/index_.html ...
- 记录一下c++的一点指针所得
c++有两种传值可以改变外部参数,一种是传递指针,另一种是传递引用,对于前者,可以用Ugly(but explicitly),对于后者,Clean(but hidden),在传递的时候有一种值得注意的 ...
- Laravel-HTTP-验证
Laravel-HTTP-验证 标签(空格分隔): php 第一种方式 **1 直接在controller里完成表单验证** **2 打印验证返回的错误信息 dd($errors)** 第二种方式 * ...
- windows py-faster-rcnn配置
[原创帖!转载请注明] windows faster-rcnn安装一直会出现各种错误,本人在实验室电脑成功安装后,在自己电脑上同样的安装步骤也成功.所以做个总结,希望对大家有帮助. 一:安装环境 1. ...
- UVa 10943 How do you add?【递推】
题意:给出n,k,问恰好有k个不超过n的数的和为n的方案数有多少 可以隔板法来做 现在有n个小球放到k个盒子里面,盒子可以为空 那么就是n-k+1个缝隙,放上k-1个隔板(k-1个隔板就分成了k份) ...