文档章节

PHP学习笔记2:文件

sosly
 sosly
发布于 2016/03/03 18:57
字数 725
阅读 8
收藏 0
1、 获取预定义的服务器文档根目录也有3种方法:
推荐,$_SERVER['DOCUMENT_ROOT'];

一种出去服务器安全考虑的路径写法,使文件位于整个文档树的外部。
如:
$fp = fopen("$_SERVER['DOCUMENT_ROOT']/../orders/orsers.txt","w");

2、fopen函数
1)路径问题,绝对路径和相对路径都可。然后斜线的不同。Unix下是正斜线(/), windows下是正斜线反斜线都可,但反斜线要转义(\\)
2)文件打开方式上,x  x+   谨慎写(如果未按已存在,该文件将不会被打开,函数返回false)
3)php.ini可以配置  allow_url_fopen指令,然后打开ftp://   或http://的远程文件。
注意1,当使用 早期版本的HTTP模式时,必须在目录名称后 加上结束斜线。如: http://www.example.com/  而不是 http://www.example.com  。后者,Web服务器通常会使用HTTP重定向。
注意2,URL中域名不区分大小写,但是路径和文件名可能会区分大小写(应该取决于目标操作系统)。
注意3,判断打开出错问题。
fopen()函数要是调用失败,就返回false,可以通过抑制系统失败,然后返回一种对用户友好的方式来处理错误。


3、写文件
fwrite()   ,然后fputs()是fwrite() 的别名函数。
fwrite() 的一个替换函数是 file_put_contents(),这个函数可以 不先调用fopen,这是PHP5新引入的。


注意:分割字符或定界字符一定不能出现在输入中,或者我们队输入进行处理,将分隔符删除或者进行转义处理

记得最后fclose($fp)

4、读文件的各种姿势
1)何时读完文件  feof() 
2)每次读取一行数据
fgets()  : 每次读取一行数据,读到换行符、文件结束符或者指定的最大程度。比如  fgets($fp,999),可以最大度999-1=998B。
fgetss(): 可以过滤字符串的标记
fgetcsv():可以指定定界符,把字符串分为多行,如果没指定,默认是双引号。
3)4种读取整个文件方法。
readfile() :使用这个函数,将打开文件,然后将文件内容输出到标准输出(如浏览器)中,然后关闭这个文件。
fpassthru() :这个药先fopen
file() :可以贱结果发到标准输出,或者数组中。
file_get_contents():以字符串形式返回文件内容,而不是回显到浏览器。
4)读取一个字符
fgetc()
注意:fgetc()会返回文件结束符EOF,而 fgets() 不会
5)读取任意长度
fread()
6)判断文件是否存在
file_exists()
7)确定文件大小
filesize()
8)删除一个文件
unlink()
9)文件定位
rewind()   fseek()  ftell()
10)文件锁定
flock()


© 著作权归作者所有

sosly
粉丝 5
博文 16
码字总数 26459
作品 0
杭州
私信 提问

暂无文章

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
21分钟前
2
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
4
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部