首页  >  文章  >  类库下载  >  PHP文件目录操作

PHP文件目录操作

高洛峰
高洛峰原创
2016-10-20 13:52:521132浏览

PHP中的文件操作和目录操作

file_get_countents

file_get_contents($filename); // 获取一个文件的内容或一个网络资源的内容.
读取文件和网络资源比较快捷的函数,帮助封装了打开/关闭等操作。

缺点:该函数是一次性把内容全部读出来,放在内存中.因此,如果处理上百兆的大文件,慎用此函数。读取的文件必须要求存在,否则会警告

<?php
    $fileFile = &#39;./a.txt&#39;;
    
    $fileCoutent = file_get_contents($fileFile);

    echo $fileCoutent;
    
    echo file_get_contents(&#39;http://www.linxingzhang.com&#39;);    

?>

file_put_counents

file_put_contents($filename, $data); 该函数用来把内容写入到文件,快捷函数,帮助封装打开写入的细节

<?php

file_put_contents(&#39;./b.txt&#39;, &#39;嘻嘻哈哈&#39;);

?>

判断数据类型

isset(); 变量是否已经声明
empty(); 变量是否为空
defined(); 常量是否已经定义 define();
array_key_exists(mixed key, array serach); 检查给定的键名或索引是否存在于数组中

is_numeric(mixed var); 检测给定的键名或索引是否存在于数组中
is_bool(); 检测变量是否是布尔型
is_float(); 检测变量是否是浮点型 和 is_double(), is_real() 都一样的用法
is_int(); 检测变量是否是整型is_integer() 一样的用法
is_string(); 检测变量是否是字符串
is_object(); 检测变量是否是一个对象
is_array(); 检测变量是否是数组
is_null(); 检测变量是否为NULL

fopen&fread&fwrite&fclose

fopen($filename, $mode) 
参数1:路径
参数2:模式 如:只读模式,如:读写模式,如:追加模式
打开一个文件,返回一个句柄资源

返回值:资源。(通道的作用,沿着通道就能够操作文件。获取了修改这个文件的资格)

fread($handle, $length)
参数1: 资源标识
参数2:读取的长度 
返回值:所读取的字符串
读取文件

fwrite($handle, $string);
参数1:资源标识
参数2:内容
返回值:成功字符串数,失败返回false
写入文件

fclose($handle);关闭资源

<?php
    $file = &#39;./a.txt&#39;;
    
    // 返回获取资格的标识
    $fh = fopen($file, &#39;r&#39;);
    
    // 沿着上面返回的$fn资源通道来读文件
    echo fread($fh, 10);
    
    $rs = fwrite($fh, &#39;xixihaha&#39;);
    echo $rs; // 0 // 只读,不允许写入
    
    fclose($fh);
?>
<?php

    $file = &#39;./a.txt&#39;;
    
    // r+ 读写模式, 并把指针指向文件头
    // 覆盖相等字节的字符串
    $fh = fopen($file, &#39;r+&#39;);
    
    $rs = fwrite($fh, &#39;hahahaha&#39;);
    echo $rs; 
    
    echo &#39;<hr />&#39;;
    
    // w 写入模式(fread读取不了), 并把文件大小截为0(文件被清空了),指针停于开头处
    $file = &#39;./modew.txt&#39;;
    $fh = fopen($file, &#39;w&#39;);
    
    fclose($fh);
    echo &#39;ok&#39;;


    // a 追加模式 能写,并把指针停止在文件的最后.
    $fh = fopen(&#39;./modea.txt&#39;, &#39;a&#39;);
    
    echo fwrite($fh, &#39;嘻嘻哈哈&#39;);
    
    fclose($fh);

    ?>

file

批处理名单

第一种办法:

<?php
    
    $file = &#39;./custom.txt&#39;;
    
    $cont = file_get_contents($file);
    
    print_r( explode("\n", $cont) ); 
    
    /**
     * 各个操作系统下,换行符并不一致
     * win: \r\n
     * *nix: \n
     * mac: \r
     */
?>

第二种办法:

<?php

    // 第二种
    // 打开,一点点的读取,每次读取一行.
    // fgets(); 每次读取一行
    
    $file = &#39;./custom.txt&#39;;
    // $mode 可以加`b`,表示以2进制来处理,不受编码的干扰. 
    $fh = fopen($file, &#39;rb&#39;);
    
    // feof(), end of file 的意思
    // 判断指针是否已经到结尾
    
    while ( !feof($fh) ) {
        echo fgets($fh) , &#39;<br />&#39;;
    }
?>

第三种办法:

file(); 直接读取文件内容,并按行拆成数组,返回该数组.

和 file_get_contents(); 的相同之处:一次性读入,大文件慎用.

<?php

    // file(); 
    $file = &#39;./custom.txt&#39;;
    $arr = file($file);
    print_r($arr);

?>

file_exists

file_exists 检查文件或目录是否存在file_exists($filename);

<?php
    // 判断文件是否存在
    // 获取文件的创建时间/修改时间
    
    $file = &#39;./custom.txt&#39;;
    
    if ( file_exists($file) ) {
        echo $file, &#39;存在&#39;, &#39;<br />&#39;;
        echo &#39;上次修改时间:&#39;, date(&#39;Y-m-d H:i:s&#39;, filemtime($file)), &#39;<br />&#39;;
        echo &#39;修改时间:&#39;, date(&#39;Y-m-d H:i:s&#39;, filectime($file)), &#39;<br />&#39;;
    }

?>


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关文章

查看更多