威尼斯登录首页第一介绍的是三个从目录读取的函数,首先是从目录读取的函数
分类:威尼斯登录首页

目录,文件操作详谈php

 一、目录操作
   
      首先是从目录读取的函数,opendir(卡塔尔国,readdir(卡塔尔国,closedir(卡塔尔,使用的时候是先张开文件句柄,而后迭代列出:

一、引论
在任何计算机设备中,文件是都是必得的指标,而在web编制程序中,文件的操作平昔是web程序猿的高烧之处,而,文件的操作在cms系统中那是必需的,特别管用的,我们平常遇上生成文件目录,文件(夹卡塔尔(قطر‎编辑等操作,现在本身把php中的那么些函数做一详尽总计并实例示范怎么样使用.,关于对应的函数详细介绍,请查阅php手册.此处只总括着重.和须求留意之处.(那在php手册是一贯不的.卡塔尔国
二、目录操作
率先介绍的是三个从目录读取的函数,opendir(卡塔尔,readdir(卡塔尔(قطر‎,closedir(State of Qatar,使用的时候是先张开文件句柄,而后迭代列出:
复制代码 代码如下:
$base_dir = "filelist/"; 
$fso  = opendir($base_dir); 
echo $base_dir."

● 写文件

<?php
$base_dir="filelist/";
$fso=opendir($base_dir);
echo  $base_dir."<hr/>";
while($flist=readdir($fso)){
      echo $flist."<br/>";
}
closedir($fso)
?>
      那是讲重返文件目录上面包车型地铁文书已经目录的程序(0文件将赶回falseState of Qatar.


和读取文件的艺术相仿,先看看是还是不是能写:

神跡必要驾驭目录的新闻,可以动用dirname($path卡塔尔国和basename($pathState of Qatar,分别重临路线的目录部分和文件名名称部分,可用disk_free_space($path卡塔尔重回查看空间剩余空间.

"  ; 
while($flist=readdir($fso)){ 
echo $flist."
" ; 

closedir($fso) 
?>  

?php

创办命令:

那是讲再次回到文件目录上面包车型地铁文件已经目录的顺序(0文件将回来falseState of Qatar.
临时要求掌握目录的新闻,能够行使dirname($path卡塔尔国和basename($path卡塔尔,分别重返路线的目录部分和文书名名称部分,可用disk_free_space($path卡塔尔返重播空间空余空间.
创制命令:
mkdir($path,0777)
,0777是权限码,在非window下可用umask(卡塔尔函数设置.
rmdir($path)
将去除路子在$path的文件.
dir -- directory 类也是操作文件目录的最首要类,有3个方法,read,rewind,close,那是贰个仿面向目的的类,它先使用的是张开文件句柄,然后用指针的主意读取的.,这里看php手册:
复制代码 代码如下:

$file = ''dirlist.php'';if (is_writable($fileState of Qatar == falseState of Qatar { die(笔者是鸡毛,笔者不可能卡塔尔(قطر‎;}?

mkdir($path,0777卡塔尔(قطر‎:0777是权限码,在非window下可用umask(State of Qatar函数设置.

$d = dir("/etc/php5"); 
echo "Handle: " . $d->handle . "n"; 
echo "Path: " . $d->path . "n"; 
while (false !== ($entry = $d->read())) { 
   echo $entry."n"; 

$d->close(); 
?>  

能写了的话能够动用file_put_contents函数写入:

rmdir($path卡塔尔国:将去除门路在$path的文件.

输出:
Handle: Resource id #2
Path: /etc/php5
.
..
apache
cgi
cli
文本的质量也要命重大,文件属性包罗创建时间,最终纠正时间,全体者,文件组,类型,大小等.
上面我们第一谈文件操作.
三、文件操作
● 读文件 
先是是三个文书看能或不可能读取(权限难点卡塔尔,也许存在不,大家得以用is_readable函数获取音讯.:
复制代码 代码如下:

?php$file = ''dirlist.php'';if (is_writable($file卡塔尔 == false卡塔尔(قطر‎ { die(''笔者是鸡毛,作者不可能''卡塔尔国;}$data = ''小编是讨厌,笔者想要'';file_put_contents ($file, $data);?

二、文件操作

$file = 'dirlist.php'; 
if (is_readable($file) == false) { 
        die('文件不设有或然无法读取'State of Qatar; 
} else { 
        echo '存在'; 

?>  

file_put_contents函数在php5中新推荐介绍的函数(不知底存在的话用function_exists函数先判定一下State of Qatar低版本的php不可能接纳,能够选取如下格局:

 ●    新建文件      
      首先,鲜明你所要新建文件所在的目录权限; 提议设备为777。然后,新建文件的称谓建议选用相对路线。
<?php
$filename="test.txt";
$fp=fopen("$filename", "w+"卡塔尔(قطر‎; //展开文件指针,创制文件
if ( !is_writable($filename) ){
      die("文件:" .$filename. "不可写,请检查!");
}
//fwrite($filename, "anything you want to write to $filename.";
fclose($fp卡塔尔;  //关闭指针

看清文件存在的函数还应该有file_exists(上边演示State of Qatar,可是那些显著无is_readable周全.,当一个文书存在的话能够用
复制代码 代码如下:

$f = fopen($file, ''w'');fwrite($f, $data);fclose($f);

 ●    读文件 

$file = "filelist.php"; 
if (file_exists($file) == false) { 
        die('文件空头支票'卡塔尔(قطر‎; 

$data = file_get_contents($file); 
echo htmlentities($data); 
?>  

替换之.

      首先是贰个文书看能或无法读取(权限难点State of Qatar,只怕存在不,我们得以用is_readable函数获取新闻.:

但是file_get_contents函数在相当低版本上不帮忙,能够先创建文件的二个句柄,然后用指针读取全体:
        $fso = fopen($cacheFile, 'r');
        $data = fread($fso, filesize($cacheFile));
        fclose($fso);
还会有一种方法,能够读取二进制的文书:
$data = implode('', file($file));
● 写文件 
和读取文件的主意相符,先看看是还是不是能写:
复制代码 代码如下:

写文件的时候不常须要锁定,然后写:

<?php
$file = 'dirlist.php';
if (is_readable($file) == false) {
        die('文件荒诞不经大概不可能读取'卡塔尔;
} else {
        echo '存在';
}
?>

$file = 'dirlist.php'; 
if (is_writable($file) == false) { 
        die("笔者是鸡毛,作者无法"卡塔尔国; 

?>  
能写了的话可以利用file_put_contents函数写入:
复制代码 代码如下:

function cache_page($pageurl,$pagedata){if(!$fso=fopen($pageurl,''w''State of Qatar卡塔尔{$this-warns(''不或者张开缓存文件.''State of Qatar;//trigger_errorreturn false;}if(!flock($fso,LOCK_EX)){//LOCK_NB,排它型锁定$this-warns(''无法锁定缓存文件.''卡塔尔;//trigger_errorreturn false;}

看清文件存在的函数还会有file_exists(下面演示卡塔尔,可是这一个显明无is_readable全面.,当二个文本存在的话能够用

$file = 'dirlist.php'; 
if (is_writable($file) == false) { 
        die('作者是鸡毛,笔者不可能'卡塔尔(قطر‎; 

$data = '笔者是讨厌,作者想要'; 
file_put_contents ($file, $data); 
?>  

<?php
$file = "filelist.php";
if (file_exists($file) == false) {
        die('文件不设有'卡塔尔;
}
$data = file_get_contents($file);
echo htmlentities($data);
?>

file_put_contents函数在php5中新推荐的函数(不明白存在的话用function_exists函数先剖断一下State of Qatar低版本的php不恐怕使用,可以运用如下形式:
$f = fopen($file, 'w');
fwrite($f, $data);
fclose($f);
替换之.
写文件的时候不常必要锁定,然后写:
复制代码 代码如下:
function cache_page($pageurl,$pagedata){ 
 if(!$fso=fopen($pageurl,'w')){ 
  $this->warns('不可能开垦缓存文件.'卡塔尔;//trigger_error 
  return false; 
 } 
 if(!flock($fso,LOCK_EX)){//LOCK_NB,排它型锁定 
  $this->warns('无法锁定缓存文件.'卡塔尔(قطر‎;//trigger_error 
  return false; 
 } 
 if(!fwrite($fso,$pagedata卡塔尔(قطر‎卡塔尔{//写入字节流,serialize写入其它格式 
  $this->warns('不或然写入缓存文件.'卡塔尔(قطر‎;//trigger_error 
  return false; 
 } 
 flock($fso,LOCK_UNState of Qatar;//释放锁定 
 fclose($fso); 
 return true; 
}  

但是file_get_contents函数在超低版本上不扶植,能够先创造文件的三个句柄,然后用指针读取全体:

● 复制,删除文件 
php删除文件非常easy,用unlink函数轻便操作:
复制代码 代码如下:

还大概有一种方法,能够读取二进制的文书:

$file = 'dirlist.php'; 
$result = @unlink ($file); 
if ($result == false) { 
        echo '蚊子赶走了'; 
} else { 
        echo '不能赶走'; 

?>  

$data = implode('', file($file));

即可.
复制文件也比较轻易:
复制代码 代码如下:

 ●   写文件 

$file = 'yang.txt'; 
$newfile = 'ji.txt'; # 那些文件父文件夹必须能写 
if (file_exists($file) == false) { 
        die ('小样没上线,不能复制'State of Qatar; 

$result = copy($file, $newfile); 
if ($result == false) { 
        echo '复制回忆ok'; 

?>  

和读取文件的情势相似,先看看是还是不是能写:

能够使用rename(卡塔尔函数重命名二个文书夹.其余操作都以那多少个函数组合一下就能够落实的.
● 获取文件属性 
本人说多少个普及的函数:
赢得近来涂改时间:
复制代码 代码如下:

<?php
$file = 'dirlist.php';
if (is_writable($file) == false) {
        die("You have no right to write!");
}
?>

$file = 'test.txt'; 
echo date('r', filemtime($file)); 
?>  

能写了的话能够动用file_put_contents函数写入:

回去的说unix的岁月戳,这在缓存技术常用.
连带的还会有获得上次被访谈的日子fileatime(卡塔尔(قطر‎,filectime(卡塔尔国当文件的权力,全数者,全体组或其余 inode 中的元数据被更新时间,fileowner(卡塔尔(قطر‎函数重返文件全数者
$owner = posix_getpwuid(fileowner($file));
(非window系统卡塔尔(قطر‎,ileperms(卡塔尔(قطر‎获取文件的权杖,
复制代码 代码如下:

<?php
$file = 'dirlist.php';
if (is_writable($file) == false) {
        die('小编是鸡毛,笔者不能够'State of Qatar;
}
$data = '小编是讨厌,我想要';
file_put_contents ($file, $data);
?>

$file = 'dirlist.php'; 
$perms = substr(sprintf('%o', fileperms($file)), -4); 
echo $perms; 
?>  

file_put_contents函数在php5中新推荐介绍的函数(不精晓存在的话用function_exists函数先判别一下State of Qatar低版本的php不或许接纳,能够运用如下方式:

filesize(卡塔尔(قطر‎重返文件大小的字节数:
复制代码 代码如下:

$f = fopen($file, 'w');
fwrite($f, $data);
fclose($f);

// 输出附近:somefile.txt: 1024 bytes 
$filename = 'somefile.txt'; 
echo $filename . ': ' . filesize($filename) . ' bytes'; 
?>  
得到文件的所有事音讯有个重回数组的函数stat(State of Qatar函数:
复制代码 代码如下:

替换之.

$file = 'dirlist.php'; 
$perms = stat($file); 
 var_dump($perms); 
?>  

写文件的时候有的时候供给锁定,然后写:

那三个键对应怎么样能够查看详细资料,此处不再展开.
四、结束语
上边笔者轻巧的下结论了须臾间多少个文件操作,借让你熟习了然以上列出的函数,已经在操作的时候没什么大的难题,php文件操作的函数变化非常快,以往早就充足刚劲了,文件那有个别也是读书php超级重大的一片段,希望不用忽视. 

function cache_page($pageurl,$pagedata){
    if(!$fso=fopen($pageurl,'w')){
        $this->warns('不或然展开缓存文件.'卡塔尔(قطر‎;//trigger_error
        return false;
    }
    if(!flock($fso,LOCK_EX)){//LOCK_NB,排它型锁定
        $this->warns('不只怕锁定缓存文件.'卡塔尔国;//trigger_error
        return false;
    }
    if(!fwrite($fso,$pagedata卡塔尔国卡塔尔(قطر‎{//写入字节流,serialize写入其它格式
        $this->warns('不或者写入缓存文件.'卡塔尔;//trigger_error
        return false;
    }
    flock($fso,LOCK_UN卡塔尔国;//释放锁定
    fclose($fso);
    return true;
}

 ●    复制,删除文件 

php删除文件特别easy,用unlink函数轻松操作:

<?php
$file = 'dirlist.php';
$result = @unlink ($file);
if ($result == false) {
        echo '蚊子赶走了';
} else {
        echo '不可能赶走';
}
?>

即可.

复制文件也比较轻易:

<?php
$file = 'yang.txt';
$newfile = 'ji.txt'; # 那一个文件父文件夹必得能写
if (file_exists($file) == false) {
        die ('小样没上线,无法复制'State of Qatar;
}
$result = copy($file, $newfile);
if ($result == false) {
        echo '复制回想ok';
}
?>

能够运用rename(卡塔尔(قطر‎函数重命名贰个文件夹.其余操作都以那多少个函数组合一下就会落实的.

 ●   获取文件属性 

自身说多少个不足为道的函数:
收获近年来涂改时间:

<?php
$file = 'test.txt';
echo date('r', filemtime($file));
?>

回去的说unix的岁月戳,那在缓存技能常用.

相关的还会有取得上次被访问的日子fileatime(卡塔尔(قطر‎,filectime(State of Qatar当文件的权柄,全体者,全部组或任何 inode 中的元数据被更新时间,fileowner(卡塔尔国函数重回文件全体者

$owner = posix_getpwuid(fileowner($file));

(非window系统卡塔尔国,ileperms(卡塔尔获取文件的权柄,

<?php
$file = 'dirlist.php';
$perms = substr(sprintf('%o', fileperms($file)), -4);
echo $perms;
?>

filesize(卡塔尔国再次回到文件大小的字节数:

<?php

// 输出接近:somefile.txt: 1024 bytes

$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

?>

赢得文件的整套音信有个再次回到数组的函数stat(卡塔尔函数:

<?php
$file = 'dirlist.php';
$perms = stat($file);
 var_dump($perms);
?>

                      --参考


本文由威尼斯在线注册平台发布于威尼斯登录首页,转载请注明出处:威尼斯登录首页第一介绍的是三个从目录读取的函数,首先是从目录读取的函数

上一篇:encode将所需写入的数据变成UTF编码格式 下一篇:没有了
猜你喜欢
热门排行
精彩图文