php目录与文件操作,PHP文件操作实现代码分享

作者:江苏福彩快三计算机网络

上边大家以.txt文件为实例来介绍php读取当和姑件的函数,读取文件大家能够接纳fopen或file_get_contents来读取,file_get_contents更轻易而fopen需求fread合营才方可体现读出的剧情。

1.第一来介绍一下fopen()函数
上边大家付出了四个一贯张开当和姑件的代码demo,须求的地点大家都早已加多了讲明:

将数据写或读入文件,基本上分为多个步骤:

率先是二个文书看能还是不能够读取(权限难点),只怕存在不,大家得以用is_readable函数获取新闻.:
is_readable函数用法

一.目录操作
basename -- 再次回到路线中的文件名部分
dirname -- 重回路线中的目录部分
pathinfo -- 重临文件路径的新闻
realpath -- 再次回到标准化的相对路线名

**1.率先来介绍一下fopen()函数

 代码如下

  1. 展开贰个文本(要是存在)
  2. 写/读文件
  3. 闭馆这些文件
    l张开文件
    在开拓文件文件在此之前,大家供给明白那个文件的路径,以及此文件是不是存在。
    用$_SERVER[“DOCUMENT_ROOT”]放到全局变量,来获取站点的相对路线。如下:
    $root = $_SERVER[“DOCUMENT_ROOT”];
    在用函数file_exists()来检查评定文件是或不是留存。如下:
    If(!file_exists("$root/order.txt")){echo ‘文件官样文章';}
    接下去用fopen()函数张开那个文件。
    $fp = fopen("$root/order.txt",'ab');
    fopen()函数,接受2个或3个或4个参数。
    率先个参数为文件路线,第三个为操作方法(读/写/追加等等),必选参数。
    $fp = fopen("$root/order.txt",'ab');
    其多个为可选参数,假设要求PHP在include_path中查找三个文书,就足以行使它,无需提供目录名或路线。
    $fp = fopen("order.txt",'ab',true);
    第多个也为可选参数,允许文件名称以会谈名称发轫(如
    假定fopen()成功的开荒多个文件,就重回一个对准此文件的指针。在上头我们保留到了$fp变量中。

 代码如下

复制代码 代码如下:

**上面大家提交了二个间接展开当和姑件的代码demo,须求的地方大家都早已增进了讲授:

    //直接张开贰个地面文件的实例代码  
    <?php  
    //借使大家当地的文本是一个名称为xmlas.txt的文本  
江苏福彩快三,    $filedemo = "xmlas.txt";  
    $fpdemo = fopen($filedemo,"r");  
    if ($fpdemo){  
     while(!feof($fpdemo)){  
      //一千读取的字符数  
      $datademo = fread($fpdemo, 1000);  
     }  
     fclose($fpdemo);  
    }  
    echo $datademo;  
    ?> 

附文件格局图

<?php
$file = "test.txt";
if(is_readable($file))
  {
  echo ("$file is readable");
  }
else
  {
  echo ("$file is not readable");
  }
?>

<?php
$path = 'demo1.php';
$path = realpath($path);
echo basename($path);
echo '<br>';
echo dirname($path);
echo '<br>';
$array_path = pathinfo($path);
echo 'basename : '.$array_path['basename'].'<br>';
echo 'dirname : '.$array_path['dirname'].'<br>';
echo 'extension : '.$array_path['extension'].'<br>';
echo 'filename : '.$array_path['filename'].'<br>';
?>

复制代码 代码如下:

2.使用file_get_contents() 函数将全部文件在二个字符串中输出:
设若我们的xmlas.txt文本文件中有那般一句话:以往的录制越发没刺激,想要全体高潮请看东瀛柔情

江苏福彩快三 1
写文件
在PHP中写文件相比轻易。直接用fwrite()函数就能够。
fwrite()的原型如下

输出:

Output:
demo1.php
D:AppServwwwBasic6
basename : demo1.php
dirname : D:AppServwwwBasic6
extension : php
filename : demo1

    //直接展开二个地面文件的实例代码  
    <?php  
    //假如大家地点的公文是叁个名字为xmlas.txt的文件  
    $filedemo = "xmlas.txt";  
    $fpdemo = fopen($filedemo,"r");  
    if ($fpdemo){  
     while(!feof($fpdemo)){  
      //一千读取的字符数  
      $datademo = fread($fpdemo, 1000);  
     }  
     fclose($fpdemo);  
    }  
    echo $datademo;  
    ?>

动作片!
那便是说大家file_get_contents() 函数的实例代码便如下:

int fwrite(resource handle,string string [,int length]);

test.txt is readable

二.磁盘、目录和文件计数
1.查看文件大小和磁盘空间
filesize -- 取得文件大小
disk_free_space -- 重临目录中的可用空间
disk_total_space -- 重临三个目录的磁盘总大小

**2.使用file_get_contents() 函数将全部文件在二个字符串中输出:

 代码如下

其四个参数是可选的,申明写入文件的最大尺寸。
能够因此内置strlen()函数得到字符串的长短,如下:

利用file_get_contents函数来读取文件,那几个函数能够读取大数据量的文件,也能够读取远程服务器文件,但不可能不在php.ini开头allow_url_fopen = On不然此函数不可用。

复制代码 代码如下:

**假如大家的xmlas.txt文本文件中有那般一句话:今后的影片越发没刺激,想要全体高潮请看东瀛柔情

    <?php  
    echo file_get_contents("xmlas.txt");  
    //此时出口的剧情便为xmlas.txt中的内容:  
    //现在的电影特别没激情,想要全体高潮请看东瀛痴情清宫戏!  
    ?> 

fwrite($fp,$outputinfo,strlen($outputinfo));

 代码如下

<?php
$path ='demo2.php';
$path = realpath($path);
$drive = 'c:';
echo round(filesize($path)/1024,2).'kb'.'<br/>';
echo round(disk_free_space($drive)/1024/1024/1024,2).'GB'.'<br/>';
echo round(disk_total_space($drive)/1024/1024/1024,2).'GB'.'<br/>';
?>

动作片!
那正是说我们file_get_contents() 函数的实例代码便如下:

3.什么样读取本地的多少个文本夹实际不是贰个单独文件:
请看上边包车型地铁实例代码,在实例中大家将读取一个名叫xmlas的公文夹:

此函数告诉PHP将$outputinfo中的音信保存到$fp指向的文本中。
l读文件

<?php

output
0.26kb
10.61GB
30.01GB

复制代码 代码如下:

 代码如下

  1. 以只读方式张开文件
    还是使用fopen()函数,但只读格局展开文件,就用“rb”文件情势。如下:

  $file = "filelist.php";

2.到手文件的各个时间
fileatime -- 猎取文件的上次访问时间
filectime -- 取得文件的 inode 修改时间
filemtime -- 获得文件修改时间

    <?php  
    echo file_get_contents("xmlas.txt");  
    //此时出口的剧情便为xmlas.txt中的内容:  
    //现在的摄像特别没激情,想要全部高潮请看日本情色影片!  
    ?>

    <?php  
    $dirdemo = opendir('/xmlas');  
    while(($filedemo = readdir($dirdemo))!=false){  
      if ($filedemo!="." && $filedemo!="..") {   
        $nsdemo = explode('.', $filedemo);  
        echo $nsdemo[0];  
      }   
    }  
    closedir($dirdemo);  
    ?> 

$fp = fopen(“$root/order.txt”,'rb');

  if (file_exists($file) == false) {

复制代码 代码如下:

3.什么读取本地的贰个文本夹实际不是八个独自文件: 请看上边包车型客车实例代码,在实例中大家将读取一个名字为xmlas的文书夹:

4.我们还是能使用fopen来写文件

  1. 领会何时读完文件
    我们用while循环来读取文件内容,用feof()函数,作为循环条件的停下条件。如下:

  die('文件不设有');

<?php
$file = realpath ( '../Basic5/demo3.php' );
$date_format = 'Y-m-d h:i:s';
echo 'lastest accessing time : '.date ( $date_format, fileatime ( $file ) ) . '<br>';
echo 'lastest change time : '.date ( $date_format, filectime ( $file ) ) . '<br>';
echo 'lastest modify time : '.date ( $date_format, filemtime ( $file ) ) . '<br>';
?>

复制代码 代码如下:

 代码如下

while(!feof($fp)){
//要拍卖的新闻
}
3.每趟读取一行记录
fgets()函数能够从文本文件中读取一行内容。如下:

}

output
lastest accessing time : 2011-12-18 04:26:49
lastest change time : 2011-12-18 04:26:49
lastest modify time : 2011-12-18 04:29:15

<?php  
    $dirdemo = opendir('/xmlas');  
    while(($filedemo = readdir($dirdemo))!=false){  
      if ($filedemo!="." && $filedemo!="..") {   
        $nsdemo = explode('.', $filedemo);  
        echo $nsdemo[0];  
      }   
    }  
    closedir($dirdemo);  
    ?> 

/**
 *用fopen写入文件
 *@param string $filename
 *@param string $contents
 *@return boolean
 */
 
 function wirte($filename,&$contents)
 {
  $fp=fopen($filename,"wb");
  if($fp)
  {
   flock($fp,LOCK_EX);//同时锁定文件,只好一人操作
   fwrite($fp,$contents);
   flock($fp,LOCK_UN);//保存数据握实行解锁文件并保留
   fclose($fp);
   return true;
  }else
  {
   return false;
  }
 }

复制代码 代码如下:

$data = file_get_contents($file);

三.文书管理
文件读写的二种办法:
1.php全数版本都帮忙的不二等秘书诀:
fopen -- 展开文件可能 U路虎极光L
fclose -- 关闭贰个已开发的文件指针
fwrite -- 写入文件(可无恙用于二进制文件)
表 1. fopen() 中 mode 的或然值列表

4.大家还足以采纳fopen来写文件

如此自身一旦选拔fopen协作fwrite就足以兑现公文读写了。

$fp = fopen("$root/order.txt",'rb');
while(!feof($fp)){
$info = fgets($fp,999);
echo $info.'<br />';
}
fclose($fp);

echo htmlentities($data);

mode

复制代码 代码如下:

只顾:l张开文件

如此那般,他将不仅仅的读入数据,直到读取二个换行符(n)大概文件停止符EOF,或然是从文件中读取了998B,能够读取的最大尺寸为钦命的长度减去1B。
4.读取全方位文件
PHP提供了4中不一致的不二秘技来读取整个文件。
a).readfile()函数
它可以绝不先fopen($path)文件和倒闭文件,也不用echo,间接利用就可以。如下:
readfile(“$root/order.txt”);
它会活动把文件的音讯,输出到浏览器中。它的原型如下:
Int readfile(string filename,[int use_include_path[,resource context]]);
其次个可选参数钦命了PHP是还是不是在include_path中查找文件,那一点于fopen函数同样,再次回到值为从文件中读取的字节总量。
注:直接采取,不用fopen或fclose
b).fpassthru()函数
要使用这一个函数,必须先fopen()张开三个文书。然后将文件的指针作为参数字传送递给fpassthru(),那样就能够把文件指针所指向的文书内容输出。然后再将那一个文件关闭。如下:
$fp = fopen(“$root/order.txt”,'rb');
fpassthru($fp);
fclose($fp);
重临值一样为从文件中读取的字节总的数量。
注:必须fopen和fclose
c).file()函数
除了那一个之外将文件输出到浏览器中外,他和readfile()函数是一致的,它把结果发送到一个数组中。如下:
$fileArray = file(“$root/order.txt”);
文本中的每一行,将用作数组的每叁个要素。
注:直接使用,不用fopen和fclose
d).file_get_contents()函数
于readfile()同样,不过该函数将以字符串的款型重回文件内容,实际不是将文件内容一直出口到浏览器中,相当于必须选拔echo 输出,如下:

?>

说明

/**
 *用fopen写入文件
 *@param string $filename
 *@param string $contents
 *@return boolean
 */

在开荒文件文件此前,我们供给理解那几个文件的路径,以及此文件是还是不是存在。

echo file_get_contents(“$root/order.txt”);
注:直接行使,不用fopen和fclose
5.读取一个字符
fgetc()函数从三个文书中一次读取一个字符,它具有一个文本指针函数,那也是不今不古的参数,而且它回到下三个字符。如下:

读取远程 文件,那是本学科那外的话题了。

'r'

 function wirte($filename,&$contents)
 {
  $fp=fopen($filename,"wb");
  if($fp)
  {
   flock($fp,LOCK_EX);//同期锁定文件,只可以壹人操作
   fwrite($fp,$contents);
   flock($fp,LOCK_UN);//保存数据握举行解锁文件并保存
   fclose($fp);
   return true;
php目录与文件操作,PHP文件操作实现代码分享。  }else
  {
   return false;
  }
 }

用$_SERVER[“DOCUMENT_ROOT”]停放全局变量,来获得站点的绝对路线。如下:

复制代码 代码如下:

 代码如下

只读格局展开,将文件指针指向文件头。

如此那般笔者尽管使用fopen同盟fwrite就能够完结文件读写了。

 代码如下

$fp = fopen("$root/order.txt",'rb');
while(!feof($fp)){
$char = fgetc($fp);
if(!feof($fp)){
echo ($char == "n" ? '<br />' : $char);
}
}
fclose($fp);

function vita_get_url_content($url) {
if(function_exists('file_get_contents')) {
$file_contents = file_get_contents($url);
} else {
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, curlopt_url, $url);
curl_setopt ($ch, curlopt_returntransfer, 1);
curl_setopt ($ch, curlopt_connecttimeout, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
}
return $file_contents;
}

'r '

瞩目:l展开文件

$root = $_SERVER[“DOCUMENT_ROOT”];

注:fgetc()函数的三个欠缺就是它回到文件的收尾符EOF,而fgets()则不会。读取字符后还索要看清feof()。

利用fread函数
来读取文件,那么些函数能够读取钦点大小的数据量
//fread读取文件实例一

读写方式张开,将文件指针指向文件头。

在开垦文件文件在此以前,我们须求精通那几个文件的不二等秘书籍,以及此文件是不是存在。

 
在用函数file_exists()来检测文件是不是存在。如下:

  1. php目录与文件操作,PHP文件操作实现代码分享。读取大肆长度
    fread()函数即为从文件中读取任一长短的字节,函数原型如下:

 代码如下

'w'

本文由江苏福彩快三发布,转载请注明来源

关键词: 江苏福彩快三