读/写文件
fopen() - fclose($fp)
fgetc()
fgets() - fputs()
fgetcsv() - fputcsv()
fgetss()
fread() - fwrite()
file_get_contents() - file_put_contents()
file()
readfile()
fpassthru()
fscanf()
$fp=fopen("file","mode") r r+ w w+ a a+ x x+ t(\n) b(\r\n)
读
echo fgetc($fp) 一个字符 指针指向下一个字符
echo fgets($fp) 一行 指针指向下一行
echo fgets($fp,n) 一行的前n-1个字节(默认1024) 指针指向第n个字符
echo fgetss($fp) 过滤掉html和php标记
print_r(fgetcsv($fp)) 读一行 以,为分隔符 返回数组
print_r(fgetcsv($fp,length)) legnth>最长的一行
print_r(fgetcsv($fp,length,":")) 以:为分隔符 默认,
print_r(fgetcsv($fp,length,":","'")) 以,为环绕符 默认""
echo fgetss($fp,1024)
echo fgetss($fp,"
,") 不被去掉的标记
echo fread($fp,n) 读文件的n个字节
echo nl2br(fread($fp,filesize("file"))); 读整个文件
echo file_get_contents("file"); 读整个文件->字符串
print_r(file("file")) 读整个文件->数组
readfile("file") 打印文件 返回字节数
fpassthru($fp) 打印文件 返回字节数
list($a,$b)=fscanf($fp,"%d,%d");
写
fputs=fwrite
fputs($fp,str); 返回写入的字节数
fputs($fp,str,n); 写入n字节
fputcsv($fp,split(',',$line)); 以,为分隔符
fputcsv($fp,split(',',$line),":"); 以:为分隔符
file_put_contents("file",str); 写入字符串(\r\n) 返回字节数
file_put_contents("file",arr); 写入数组
file_put_contents("file",str,FILE_APPEND); 追加
file_put_contents("file",str,LOCK_EX); 锁定
-------------------------------------------------------------------------------
缓冲
set_file_buffer($fp,size) 设置文件缓冲区大小
fflush($fp) 将缓冲区的内容写入文件
文件操作
touch("filename")
unlink("filename")
rename("old","new")
copy("old","new")
磁盘容量
echo disk_free_space("C:"); byte
echo disk_total_space("C:"); byte
文件指针
rewind($fp) 复位到开始
ftell($fp) 当前位置字节
fseek($fp,offset,whence) 移动 whence=SEEK_SET SEEK_CUR SEEK_END
while(!feof($fp))
文件信息
clearstatcache()
filectime()
filemtime()
fileatime()
filesize("demo.php") 37
filetype("demo.php") file/dir/link/char/fifo/block/unknown
filegroup("demo.php") 0
fileowner("demo.php") 0
fileperms("demo.php") 33206
chgrp("file","group")
chown("file","owner")
chmod("file",0755);
umask()
fileinode("demo.php") 0
stat()
lstat() 返回文件/符号链接的状态
fstat()
echo date("Y-m-d H:i:s",filectime("demo.php"));2010-05-28 18:56:32
echo date("Y-m-d H:i:s",filemtime("demo.php"));2010-05-29 00:24:41
echo date("Y-m-d H:i:s",fileatime("demo.php"));2010-05-29 00:25:16
echo substr(sprintf("%o",fileperms("demo.php")),-4); 0666
print_r(stat("demo.php"));
dev/ino/mode/nlink/uid/gid
rdev/size/atime/mtime/ctime/blksize/blocks
-------------------------------------------------------------------------------
链接
link("target","link") linux函数
symlink("target","link") linux函数
linkinfo("target") linux函数
readlink("target") linux函数
锁定文件
fblock()
写
$fp=fopen("file","ab");
flock($fp,LOCK_EX);
fwrite($fp,$out);
flock($fp,LOCK_UN);
fclose($fp);
读
$fp=fopen("file","r");
flock($fp,LOCK_SH);
fread...
flock($fp,LOCK_UN);
fclose($fp);
匹配文件名
fnmatch() linux函数
glob()
if(fnmatch("gr[ae]y","darkgrey"))...
print_r(glob("*.*"));
上传文件
move_uploaded_file("oldfile","newfile")
is_uploaded_file("file")
if(($_FILES["file"]["type"]=="image/gif") || ...
&& $_FILES["file"]["size"]<20000)
{
if($_FILES["file"]["error"]>0) echo $_FILES["file"]["error"];
else
{
$_FILES["file"]["name"]
$_FILES["file"]["type"]
$_FILES["file"]["size"]
$_FILES["file"]["tmp_name"]
if(file_exists("upload/".$_FILES["file"]["name"])) //already exists
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/".$_FILES["file"]["name"]);
}
}
}
else //invalid files
文件检测
file_exists("file/dir") 文件/目录存在
is_dir("dir")
is_file("file")
is_link("symlink");
is_executable("file")
is_readable("file")
is_writeable("file")
-------------------------------------------------------------------------------
目录
dirname() - basename()
pathinfo()
realpath()
mkdir() - rmdir()
echo dirname("c:/testweb/home.php"); c:/testweb
echo pathinfo("c:/testweb/home.php",PATHINFO_DIRNAME);
echo basename("c:/testweb/home.php"); home.php
echo pathinfo("c:/testweb/home.php",PATHINFO_BASENAME);
echo basename("c:/testweb/home.php",".php"); home
echo pathinfo("c:/testweb/home.php",PATHINFO_FILENAME);
echo pathinfo("c:/testweb/home.php",PATHINFO_EXTENSION); php
print_r(pathinfo("c:/testweb/home.php"));
Array ( [dirname]=>c:/testweb [basename]=>home.php
[extension]=>php [filename]=>home )
echo realpath("demo.php");
D:\Apache Software Foundation\Apache2.2\htdocs\demo.php
mkdir("dirname"); 需层层建立
rmdir("dirname"); 删空目录
-------------------------------------------------------------------------------
临时文件
tmpfile() (w+ 唯一文件名)
tempnam() (指定目录 唯一文件名)
$fp=tmpfile();
fputs($fp,str);
rewind($fp);
echo fread($fp,1024);
fclose($fp);
echo tempnam("E:","TMP"); 以TMP为前缀的文件 TMP7.tmp
进程
popen()
pclose()
$file=popen("/bin/ls","r");
...
pclose($file);
解析
parse_ini_file("test.ini"); 全部在一个数组
parse_ini_file("test.ini",true); 每个段一个数组
[database]
HOST = "localhost"
USER = "root"
PASSWORD = "pass3369"
SCHEMA = "phpnote"
截断
ftruncate()
$fp=fopen("chen.txt","a+");
ftruncate($fp,20); 截取20字节
fclose($fp);