1. 云栖社区>
  2. PHP教程>
  3. 正文

php文件处理函数

作者:用户 来源:互联网 时间:2017-12-01 15:00:51

php文件函数处理

php文件处理函数 - 摘要: 本文讲的是php文件处理函数,basename():获取路径中的文件名部分;语法:basename(path[,suffix]);//返回路径中的文件名部分说明:第一个参数为路径,必需;      第二个参数可选,为文件扩展名,设置后返回值中不包含文件扩展名。例如:&l

basename():获取路径中的文件名部分;
语法:basename(path[,suffix]);//返回路径中的文件名部分
说明:第一个参数为路径,必需;
      第二个参数可选,为文件扩展名,设置后返回值中不包含文件扩展名。
例如:<?php
  $path = "/home/httpd/html/index.php";
  echo  basename($path);                //输出 index.php     
  echo  basename($path,".php");     //输出 index
   ?>
dirname():获取路径中的目录部分;
语法:dirname(path);//返回路径中的目录部分
说明:path 参数是一个包含有指向一个文件的全路径的字符串,
      该函数返回去掉文件名后的目录名
      可嵌套使用,嵌套一次就去除最后一个目录名,嵌套多次依次类推
例如:<?php
  $path="/wamp/www/item/test.php";
  //输出:/wamp/www/item
  echo "目录名为:".dirname($path);
    ?>
pathinfo():函数以数组的形式返回关于文件路径的信息,关联数组中包含元素:dirname、basename、extension;
语法:pathinfo(path[,规定获取那个值]);//返回一个关联数组
说明:第二个参数可选,规定要返回的数组元素,默认 ALL,参数值为:PATHINFO_DIRNAME - 只返回 dirname;PATHINFO_BASENAME - 只返回 basename;PATHINFO_EXTENSION - 只返回 extension
     如果不是请求所有的元素,则 pathinfo() 函数返回字符串。
例如:<?php
  $path="/wamp/www/item/test.php";
  //输出:Array ( [dirname] => /wamp/www/item [basename] => test.php [extension] => php [filename] => test )
  print_r(pathinfo($path));
  ?>
realpath():返回规范的绝对路径;
语法:realpath(path);//返回绝对路径名/不存在的文件返回false
说明:path:要检查的路径该函数删除所有符号连接(比如 ‘/./’, ‘/../’ 以及多余的 ‘/’),并返回绝对路径名。如果失败,该函数返回 FALSE。
例如:<?php
 $path="/wamp/www/item/test.php"; //文件一定要存在磁盘中
 //输出:D:/wamp/www/item/test.php
 var_dump(realpath($path));
  ?>
fopen()打开文件或URL
语法:fopen(filename,mode);//返回文件指针,失败返回false
说明:filename文件路径或URL,一定要存在真实路径,
      mode访问类型,参数值:r、r+、w、w+、a、a+、x、x+
例如:<?php
 $file = fopen("test.txt","r");
 $file = fopen("/home/test/test.txt","r");
 $file = fopen("/home/test/test.gif", "wb");
  //由于windows行结束符:/n/t;linux行结束符:/n;为移植性考虑,打开文件时总是使用 "b" 标记。
 $file = fopen("http://www.baidu.com/","r");
?>
说明 备注
r 只读方式打开,将文件指针指向文件头
r+ 读写方式打开,将文件指针指向文件头
w 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。重置内容
w+ 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。重置内容
a 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。追加内容
a+ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。追加内容
x 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,返回 FALSE报出E_WARNING 级别的错误信息,如果文件不存在则尝试创建之。
x+ 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,返回 FALSE报出E_WARNING 级别的错误信息,如果文件不存在则尝试创建之。


fgets():从打开的文件中返回一行;
语法:fgets(file[,length]);//成功返回读取到的字符串/失败false
说明:file:通过fopen打开的文件指针;
      length规定要读取的长度,默认1024字节 (1k);
注意:读取一行表示:碰到换行符(包括在返回值中)或者已经读取了 length - 1 字节后停止。把文件指针移向下一行
例如:<?php
  //读取文件一行内容
 $handle = fopen(dirname(__FILE__)."/file/123.txt", "r"); //文件要存在
 $buffer=fgets($handle,4096);
 echo $buffer;
  ?>
读取文件中所有行内容,考虑可以通过循环方式实现,但需要知道结束行位置,那么PHP文件函数提供一个函数feof();
语法:feof(file);测试文件指针是否到了文件结束的位置。
说明:检查到已经是文件结尾返回 true;否则返回 false;
      file 已经打开的文件指针,必选有效,否则会无限循环
例如:<?php
  //读取全部行内容
 $handle = fopen(dirname(__FILE__)."/file/123.txt", "r"); //文件要存在
 while(!feof($handle)){
   $buffer = fgets($handle,4096);
   echo $buffer.'<br>';
 
  ?>
fread():读取打开的文件;
语法:fread(file,length);//成功返回所读字符串/失败false
说明:从文件指针 file 读取最多 length 个字节(length>0)。
     读取文件中的全部内容通常使用filesize获取文件最大字节数作为lenght
     语法:filesize(path);返回指定文件大小,字节数;
例如:<?php
 $filename = "file/info.txt"; //文件要存在
 $handle = fopen($filename, "r");
 $contents = fread($handle, filesize ($filename));
 echo $contents;// 输出的是info.txt中的内容
?>
fwrite():写入文件;
语法:fwrite(file,string[,length]);//成功返回写入字节数/失败false
说明:file已通过fopen以写入或读写方式打开的文件指针;
      string要写入的字符串;
      length可选参数,写入的最大字节数
例如:<?php
$txt="mywrite.txt";
$content="这是我写的一些东西/n";
$info=fopen($txt,"a"); //追加方式写入数据
$showinfo=fwrite($info,$content);
//将$content里面的内容加入到文件里
   ?>
fclose():关闭已经打开的文件,释放空间;
语法:fclose(file);//成功返回true/失败false
说明:file是已经打开的文件指针;
例如:<?php
$txt="mywrite.txt";
$content="这是我写的一些东西/n";
$info=fopen($txt,"a"); //追加方式写入数据
$showinfo=fwrite($info,$content);
//将$content里面的内容加入到文件里
fclose($info);//关闭文件指针
  ?>
file_put_contents():将字符串写入指定的文件中;
语法:file_put_contents(path,string[,mode]); //返回字节数/失败false
说明:path文件路径,如果文件不存在会自动创建;
              string要写入的内容;
              mode可选,设置:FILE_APPEND 追加方式写入,默认为覆盖
              与依次调用 fopen(),fwrite() 以及 fclose() 功能一样;
例如:<?php
 $file=dirname(__FILE__).'/file/content.txt';
 $content="你好,诺博源/n";
 echo file_put_contents($file,$content,FILE_APPEND ); 
 //如果加上FILE_APPEND表示追加,不加则视为重置
  ?>
file_get_contents():将整个文件读入字符串中;
语法:file_get_contents(path);//返回读取的内容
说明:path文件路径或URL;
      扩展函数: file(path);也可以读取整个文件,但返回的是一行为一个元素的数组 
例如:<?php
 $file=dirname(__FILE__).'/file/content.txt';
 echo file_get_contents($file); 
 //输出content.txt
 echo file_get_contents('http://www.baidu.com');
 //获取指定URL页面内容 
  ?>
is_dir():判断指定文件名是否为目录;
语法:is_dir(file);//文件名存在并且是目录返回true,否则返回false
说明:file规定要检查的文件;
      如果 file 是一个相对路径,则按照当前工作目录检查其相对路径
例如:<?php  
 $dirtxt="mytxt.txt";
 if(!is_dir($dirtxt)){
   echo "目录找不到或不存在";
 }else{
   echo "目录找到了!";
 }
 //输出:目录找不到或不存在
  ?>
is_file():判断指定文件名是否为正常的文件;
语法:is_file(file);//文件存在并且为正常文件返回true,否则返回false
说明:file规定要检查的文件;
例如:<?php  
 $text="mytxt.txt";
 if(!is_file($text)){
   $content=fopen($text,"r");
   $info=fgets($content);
   echo $info;
   fclose($content);
 }else{
   echo "这不是一个正常文件!";
 }
  ?>
file_exists():检查指定文件或目录是否存在;
语法:file_exists(path);//文件或目录存在返回true,否则返回false
说明:path规定要检查的路径;
      即可检查目录,也可以检查文件
例如:
<?php  
 $text=dirname(__FILE__). "/mytxt.txt";
 if(!file_exists($text)){
   echo "文件存在!";
 }else{
   echo "文件不存在!";
 }
 ?>
mkdir():创建新目录;
语法:mkdir(path[,mode,recursive]);//新建成功返回true,失败false
说明:path规定要创建的目录名称(或使用递归设置多层目录名);
      mode规定目录权限,默认0777最大权限,windows系统忽略
      recursive规定使用递归模式(true/false),主要用于创建多层目录
例如:<?php   
 //在当前文件夹下,创建testFile文件夹
 if(mkdir("testFile",0777)){
   echo "目录路径创建成功";
 }else{
  echo "目录路径创建失败";
 }//注意创建已存在的目录会报错
  ?>
copy():拷贝文件;
语法:copy(source,dest);//复制成功返回true,否则返回false
说明:source要复制的源文件,dest目标文件位置
      如果目标文件已存在,将会被覆盖;
例如:<?php  
 $file = 'file/info.txt';
 $newfile = 'file/info.txt.bak’;
 if (!copy($file, $newfile)) {
   echo "failed to copy $file.../n";
 }else{
   echo "copy success";
 } //输出:copy success,表示文件以成功拷贝
  ?>
move_uploaded_file():将上传的文件移动到新位置;
语法:move_uploaded_file(file,newfile);//返回true/false
说明:file通过form表单上传机制得到; 
      newfile 移动到的新地址;
备注:是在上传文件的时候用的最多。。。
unlink():删除文件;
语法:unlink(filename);//删除成功返回true,否则返回false
说明:filename要删除的文件
例如:<?php  
$fh = fopen('file/test.html', 'a');     //以写入的方式打开
fwrite($fh, '<h1><a href="http://www.baidu.com">百度一下,你就知道</h1></a>');   //写入内容
fclose($fh);
//以上可以成功写入内容,并可以用浏览器打开
unlink('file/test.html');//unlink之后,该html文件不存在
  ?>
rmdir():删除目录;
语法:rmdir(dirname);//删除成功返回true,否则返回false
说明:dirname要删除的目录;该目录下必选为空;而且要有权限;
例如:<?php  
 if(!is_dir("file")){
  mkdir("file”,0777);    //创建目录
   if(rmdir("file")){        
     echo "操作成功";
  }else{
     echo "操作失败”; 
  }
}
 ?>
glob():返指定目录下一个包含匹配指定模式的文件名/目录的数组;
语法:glob(file);//返回匹配成功的数组,否则返回false
说明:file规定检索模式;如:"*.txt","image/*.jpg";
例如:<?php
 foreach (glob("*.txt") as $filename) { 
   echo $filename. '<br>'; //匹配当前目录下.txt后缀的文件
   } 
 function d($dirPath){//获取指定目录下的所有子目录
     foreach((array)glob($dirPath."/*") as $val){
         if(is_dir($val)) { echo $val. '<br>';  d($val); }        
     }
 }
 d('a');
 ?>

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , 文件 , 函数 处理 ,以便于您获取更多的相关知识。