zoukankan      html  css  js  c++  java
  • php处理文件和操作系统

    一.文件和目录

    (1).解析目录路径:basename()返回路径的文件名部分
    获取路径目录:dirname() 返回除了文件名的路径部分
    了解关于路径的更多信息:pathinfo()   返回关联数组    pathinfo[dirname]    path[basename]   pathinfo[extension]
             最后一个是文件的扩展名
    绝对路径:realpath()降path中所有符号链接和相对路径引用转换为相应的硬链接和绝对路径。
    (2).计算文件,目录和磁盘大小
    filesize(string filename)返回指定文件大小,以字节为单位
    disk_free_space( string directory)返回指定的目录所在磁盘分区的可用空间    以字节为单位
    disk_total_space(string directory)返回指定的目录所在磁盘分区的总容量   以字节为单位
    linux的du命令获得一个文件或目录的磁盘使用情况,但是在php中处于安全原因   函数通常禁用。
    实例:确定目录内容的大小用递归的方法
    <?php
    function directory_size($directory)
    {
    $directorySize=0;
    if($dh=@opendir($directory)){//opendir()返回目录流
    while(($filename=readdir($dh))){//readdir()返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。
    if($filename!="."&&$filename!="..")
    {
    if(if_file($directior."/".$filename))
    $directorySize+=filesize($directory."/".$filename);
    if(is_dir($directory."/".$filename))
    $directorySize+=directory_size($directory."/".$filename);//递归调用自身
    }} }
    @closedir($dh);
    return $directorySize;
    }
    $directory="/usr/book/chapter10/";
    $totalSize=round((directory_size($directory)/1048576),2);
    printf("Directory %s:%f MB",$directory:".$totalSize");
    ?>
    (3)确定访问和修改时间
    确定文件的最后访问时间
    fileatime(string  filename)返回文件的最后访问时间   采用unix时间戳的格式,错误时返回false
    filectime(string filename)  返回文件的最后改变时间,采用unix时间戳格式
    最后改变时间不同于最后修改时间,最后改变时间指的是文件inode数据的任何改变,包括改变权限,所有者,组成其他inode特定的信息,而最后修改时间指对文件内容的修改。
    filemtime()返回文件的最后修改时间,
     
     
    二.文件处理

    换行符   表示文件中一行的末尾   ,处理换行符的功能,包括file() fgetcsv() h和fgets()

    识别文件末尾字符eof
    feof()验证是否到达了文件的末尾
    int feof(string resource)
    (1)fopen(string resource,string mode[,int use_include_path[,resource zeontext]])   打开文件  仅提供输出的数据流    不能操作文件
    文件模式  r  r+ w w+  a  a+  b  t
    如果资源位于本地文件系统,php则认为可以使用本地路径或相对路径来访问此资源。或者,可以将fopn()的use_include_path参数设置为1,考虑配置指令include_path中指定的路径。
    实例  $fh=fopen("/usr/local/apache/data/users.txt","rt");
        $fh=fopen("summary.html","w",1);
    (2)boolean fclose(resource filehandle)关闭文件   filehandle必须是使用fopen()或者fsockopen()打开的已经存在的文件指针。
    (3)
    1.array file(atring filename[int use_include_path[,resouce context]])从文件中读取数据的方法,不仅可以一次只读取一个字符,还可以一次读取整个文件。读取文件
    将文件读入数组 各个元素由换行符分隔,同时换行符仍附加在每个元素的末尾。
    2.将文件内容读入字符串变量    file_get_contents()函数将文件中的内容读到字符串中
    string file_get_contents(string filename[,int use_include_path[resource context]])
    3.将csv文件读入数组
    array fgetcsv(resource handle[,int length[,string delimiter[,string enclosure]]])
    解析标记为csv的文件中的 每一行。遇到换行时读取不会停止,而会在读取了length个字符后停止。
    delimiter默认设置为逗号,用于界定每个字段的字符。可选参数enclosure默认设置为双引号,标识用来把字段值围起来的字符,这在不同的上下文中也有助于付给delimiter的值可以出现在字段值里。
    实例:<?php
    $fh=fopen("/home/www/data/subscribers.csv","r")
    while(list($name,$email,$phone)=fgetcsv($fh,1024,","))
    {
    printf("<p>%s(%s) Tel.%s</p>",$name,$email,$phone);
    }
    ?>
    4.读取指定数目的字符
    string fgets(resource handle[,int length])
    如果忽略length   则假设为1024个字符    ,在读取到1024个字符前遇到换行符
    <?php
    $fh=fopen("/home/www/data/users.txt","rt");
    while(!feof($fh))  echo fgets($fh);
    fclose($fh);
    ?>
    5.从输入中剔除标记
    string fgetss(resource handle,int length[,string allowable_tags])
    与fgets类似,只是将从输入中清除所有html和php标记  如果要忽略某些标记,就将其包括在allowable_tags
    参数中。
     
    6.以一次读取一个字符的方式读取文件
    string fgets(resource handle)
    7.忽略换行符
  • 相关阅读:
    js中的setTimeout和setinterval 用法说明
    Springmvc对就jdbc封装的操作
    mybatis源码数据库链接配置
    hibernate操作mysql插入修改中文出现乱码
    jdk安装环境变量配置
    数据库理论知识
    异步提交form表单数据
    选项卡
    css3 二级菜单
    简单弹窗拖拽
  • 原文地址:https://www.cnblogs.com/dongguolei/p/7902865.html
Copyright © 2011-2022 走看看