PHP操作文件常用函数
【获取文件信息的函数】
basename($path[,扩展名]) 返回文件路径中去掉路径后的文件名称。"/root/a.txt"输出a.txt;带上.txt输出a。 dirname($path); 查看目录名称。"/root/a.txt" 输出 /root。 pathinfo($path) 返回数组。"/root/a.txt" 输出array(dirname=>root,basename=>a.txt,extension=>txt)。 realpath($path);返回文件的绝对路径。realpath(“../../aaa.txt”); 输出 D:/aaa.txt。 filetype($path); 返回文件类型。 filesize($path); 计算文件大小(字节数)。 fileatime() 文件上次被访问的时间,filemtime() 文件上次被修改的时间。filesize()返回文件大小。file_exists()检查文件或目录是否存在。 disk_total_space() 返回一个目录所在的磁盘分区大小(字节数)。 fileperms() 获取文件的权限。 getimagesize("1.jpg"); 获取图片尺寸
【操作目录的函数】
mkdir() 创建目录:mkdir(‘image’,0777) opendir() 打开目录:if(opendir("D:/www")) echo 'ok'; else echo 'fail'; closedir() 关闭目录。rename()重命名目录。rmdir() 删除空目录。 readdir() 读取文件目录,返回该目录下的所有文件名称。 $dir = opendir(“D:/www”); while( ($file=readdir($dir)) !== false ){ echo $file; } closedir($dir);
【操作文件的函数】
fopen() 打开文件;fclose() 关闭文件;touch()创建文件;unlink()删除文件;copy()复制文件;rename()重命名文件;flock()锁定文件。 fwrite() 和 fputs() 和 file_put_contents($filename [,FILE_APPEND]): 写入文件。 is_writable() 检查文件是否可写,判断文件权限,同类is_readable() 检查文件是否可读,返回布尔值。 fread() 读取文件。 fgets() 读取文档中的一行。 fgetss() 读取文档一行并去掉HTML和PHP标记。 move_uploaded_file($upload_file,$path); 上传图片(form表单必须设置enctype="multipart/form-data"属性)。 stat() 返回关于文件的信息,本函数的结果会被缓存,使用clearstatcache()来清除缓存。 PHP输出CSV和EXCEL两种简单的方法:header("Content-type:application/vnd.ms-excel");header("Content-Disposition:filename=php100.xls"); 文件指针函数:rewind()、fseek()、feof()、ftell() 。
【下载文件】
header("Content-Type:image/gif"); header('Content-Disposition: attachment; filename="logo3333.gif"'); header('Content-Length:'.filesize("logo.gif")); readfile("logo.gif");
【从一个标准 url 里取出文件的扩展名】
function getExt($url){ $arr = parse_url($url); $file = basename($arr['path']); $ext = explode(".",$file); return $ext[1]; } $str = "http://www.sina.com.cn/abc/de/fg.php?id=1"; echo getExt($str);// 输出:php
【删除非空目录】
function deldir($dirname){ if(file_exists($dirname)) { $dir=opendir($dirname); while($filename=readdir($dir)){ if($filename!="."&& $filename!=".."){ $file=$dirname."/".$filename; if(is_dir($file)){ deldir($file);//使用递归删除子目录 }else{ echo'删除文件<b>'.$file.'</b>成功'; unlink($file); } } } closedir($dir); echo'删除目录<b>'.$dirname.'</b>成功'; rmdir($dirname); } }
【复制非空目录】
function copydir($dirsrc, $dirto){ if(is_file($dirto)){ echo"目标不是目录不能创建"; return; } if(!file_exists($dirto)){ mkdir($dirto); //echo "创建目录".$dirto."成功!"; } $dir=opendir($dirsrc); while($filename=readdir($dir)){ if($filename!="."&& $filename!=".."){ $file1=$dirsrc."/".$filename; $file2=$dirto."/".$filename; if(is_dir($file1)){ copydir($file1, $file2);//递归处理 }else{ copy($file1, $file2); } } } closedir($dir); }
【PHP读取一个目录下的文件个数】
function FileCount($dir){ global $count; if(is_dir($dir) && file_exists($dir)){ $ob=scandir($dir); foreach($ob as $file){ if($file=="."||$file==".."){ continue; } $file=$dir."/".$file; if(is_file($file)){ $count++; }elseif(is_dir($file)){ FileCount($file); } } } } //调用方法 $count=0; FileCount("DataRoom"); echo $count;exit;
【php获取目录中的所有文件名】
$handler = opendir('pic/common'); while( ($filename = readdir($handler)) !== false ) { if($filename != "." && $filename != ".."){ echo $filename; } } closedir($handler);
【判断远程图片(文件)是否存在】
function check_remote_file_exists($url) { $curl = curl_init($url); curl_setopt($curl, CURLOPT_NOBODY, true); // 不取回数据 $result = curl_exec($curl); // 发送请求 $found = false; if ($result !== false) { $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); if ($statusCode == 200) { $found = true; } } curl_close($curl); return $found; }