PHP学习笔记2:文件
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()
转载于:https://my.oschina.net/sosly/blog/630551