PHP学习文件处理与文件上传 课件第1/2页

PHP对文件的处理
PHP 在服务器端文件的应用上,相关的范畴不仅仅在于用户与服务器资料库间的各种连接存取操作,也可以通过 PHP 内建的文件处理函数,来进行一般文件处理操作。

basename -- 返回路径中的文件名部分
语法格式:$path = "/home/httpd/html/index.php";
  $file = basename($path);        // $file is set to "index.php"
  $file = basename($path,".php"); // $file is set to "index"

pathinfo():分析文件当前路径
语法格式:$path_parts = pathinfo("/www/htdocs/index.html");
  echo $path_parts["dirname"] . "\n";  /www/htdocs  文件路径
  echo $path_parts["basename"] . "\n";  index.html  文件与扩展名
  echo $path_parts["extension"] . "\n";  html    文件格式

文件类型与相关信息
filesize():计算文件的大小(byte)
语法格式:$bytes=filesize(“a.txt”);
  echo $bytes     round($bytes/1024,2);
fileatime():文件最后一次访问时间(时间戳)
语法格式:echo date(“Y-m-d g:i:sa”,fileatime);
filectime():文件建立时间
语法格式:echo date(“Y-m-d g:i:sa”,filectime);
filemtime():文件最后一次更新时间
语法格式:echo date(“Y-m-d g:i:sa”,filemtime);
fileperms():文件属性以及权限10进制
语法格式:echo substr(base_convert(fileperms(a.txt),10,8),3);
fileowner():文件所有者的uid(仅在Linux系统下有用)
语法格式:echo fileowner(“a.txt”);

文件的操作
'r' 只读方式打开,将文件指针指向文件头。  
'r+' 读写方式打开,将文件指针指向文件头。  
'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。  
'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。  
'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。  
'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

'x'   创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。  
'x+'   创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

fopen() -- 打开文件或者 URL  
fclose() -- 关闭一个已打开的文件指针
fread() -- 读取文件内容
fwrite()--写入文件
语法格式:if(!$f=@fopen("file03.php","x")){//打开一个文件 x方法写入
    die("文件读取失败");    //读取失败
  }
  fwrite($f,"kkkkkkkkkk");  //向那个文件写  写什么
  echo fread($f,10);    //读取这个文件的内容
  fclose($f);      关闭打开文件

file() -- 把整个文件读入一个数组中
语法格式:$arr=file("file03.php");
  print_r($arr); //读取文件返回数组

readfile() --读入一个文件并写入到输出缓冲。 
语法格式:$str=readfile("file03.php");
  echo $str;  输出

一个文件记数器的写法:
$f=fopen("file03.php","r");
  $i=fread($f,1000);
  echo "这是您第{$i}次访问";
  fclose($f);
  $f=fopen("file03.php","w");  
  $i++;
  fwrite($f,$i);
  fclose($f);
````````````````````````````````````````
file_get_contents() – 将整个文件读入一个字符串
语法格式:file_get_contents(文件名称或URL)

file_put_contents() –?将一个字符串写入文件,和依次调用 fopen(),fwrite() 以及 fclose() 功能一样
file_put_contents(文件名称,写入数据)

feof() -- 测试文件指针是否到了文件结束的位置
ftell() -- 返回文件指针读/写的位置
语法格式ftell(文件指针)
flock() -- 轻便的咨询文件锁定
语法格式:flock(文件指针,控制参数)
文件指针:是一个已经打开(fopen)的文件指针控制参数:
“LOCK_SH”表示要取得共享锁定(读取程序),(PHP4.0.1以前版本设置1)。 
“LOCK_EX”表示要取得独占锁定(写入程序),(PHP4.0.1以前版本中设置为 2)。 
“LOCK_UN”表示要释放锁定(无论共享或独占),(PHP4.0.1以前版本中设置为 3)。 
“LOCK_NB”表示如果你不希望 flock() 在锁定时堵塞,则给控制参数再加上这个参数

fseek( ) -- 在文件指针中定位
语法结构:  fseek(文件指针,移动字元数 [,起始位置常数])
文件指针:不能用于在 fopen() 中以 “http://” 或 “ftp://” 格式打开所返回的文件指针。
移动字元数:为正数时,将文件指针向前移动指定个数:为负数时,将文件指针向后移动指定个数:
起始位置常数: 
SEEK_CUR - 设定位置为当前位置。 
SEEK_SET - 设定位置等于文件开头。(默认值)
SEEK_END - 设定位置为文件尾。

rewind( ) -- 倒回文件指针的位置,也就是将文件指针移向文件的开头位置。 
语法结构:  rewind(文件指针)
注意:如果将文件以附加(“a” 或者 “a+”)模式打开,写入文件的任何数据总是会被附加在后面,不管文件指针的位置

chgrp( ) -- 改变文件所属的组
  语法结构:chgrp(文件名称,群组名称)

filegroup( ) -- 取得文件的组
  语法结构:filegroup(文件名称)

chmod( ) -- 改变文件模式
  语法结构:chmod(文件名称,权限常数)755  666

chown( ) -- 改变文件的所有者
  语法结构:chown(文件名称,使用者)

fileowner( ) -- 取得文件的所有者
  语法结构:fileowner(文件名称)
posix_getpwuid() 来将其解析为用户名。

copy( ) -- 拷贝文件
  语法结构:copy(来源文件,目的文件)
  返回类型:bool型,如果成功则返回 TRUE,失败则返回 FALSE。
  参数说明:将来源文件拷贝到目的文件。
  unlink( ) -- 删除文件
  语法结构:unlink(目标文件)
  返回类型:bool型,如果成功则返回 TRUE,失败则返回 FALSE。
  参数说明:删除指定的目标文件
  rename( ) -- 重命名一个文件或目录
  语法结构:rename(旧文件名,新文件名)
  返回类型:bool型,如果成功则返回 TRUE,失败则返回 FALSE。
  参数说明:尝试把旧文件名重命名为新文件名。

文件属性处理
file_exists( ) -- 检查文件或目录是否存在
  语法结构:file_exists(文件名称)
  返回类型:bool型,若存在返回 true,否则返回 false。
filesize( ) -- 取得文件大小
  语法结构:filesize(文件名称)
  返回类型:返回文件大小字节数,若出错返回 false.
filetype( ) -- 取得文件类型
   语法结构:filetype(文件名称)
   返回类型:返回文件类型。可能的值有 fifo,char,dir,block,link,file 和 unknown。 出错则返回 false
is_dir( ) -- 判断给定文件名是否是一个目录
  语法结构:is_dir(名称)
  返回类型:如果文件名存在并且是一个目录则返回 true,否则返回 false。
is_executable( ) -- 判断给定文件名是否可执行
   语法结构:is_executable(名称)
    返回类型:如果文件存在且可执行则返回 TRUE,否则返回 FALSE。  
is_file( ) -- 判断给定文件名是否为一个正常的文件
  语法结构:is_file(名称)  
  返回类型:如果文件存在且为正常的文件则返回 TRUE。
is_link( ) -- 判断给定文件名是否为一个符号连接
  语法结构:is_link(名称)   
  返回类型:如果文件存在并且是一个符号连接则返回 true。
is_readable( ) -- 判断给定文件名是否可读
  语法结构:is_readable(文件名称)  
  返回类型:如果文件存在并且可读则返回 TRUE。
is_writable( ) -- 判断给定的文件名是否可写
  语法结构:is_writable(文件名称)  
  返回类型:如果文件存在并且可写则返回 TRUE。

实现iterator接口的目录读取
Iterator接口的标准方法
current():返回当前列表(list)中的元素值。
next():用于在一个列表中向下移动一个位置。
valid():检测在当前列表中是否还有下一个元素,如果有,返回true,否则返回false。
rewind():可以访问指定特征的元素列表,在开始操作iterator时,会将指针设置在顶部。

当前1/2页 12下一页阅读全文

(0)

相关推荐

  • PHP学习文件处理与文件上传 课件第1/2页

    PHP对文件的处理 PHP 在服务器端文件的应用上,相关的范畴不仅仅在于用户与服务器资料库间的各种连接存取操作,也可以通过 PHP 内建的文件处理函数,来进行一般文件处理操作. basename -- 返回路径中的文件名部分 语法格式:$path = "/home/httpd/html/index.php";   $file = basename($path);        // $file is set to "index.php"   $file = base

  • Asp.Net上传文件并配置可上传大文件的方法

    ASP.NET 包含两个控件可以使用户向网页服务器上传文件.一旦服务器接受了上传的文件数据,那么应用程序就可以进行保存,进行检查或者忽略它. HtmlInputFile - HTML 服务器控件 FileUpload - ASP.NET 网页控件 两种控件都允许文件上传,但是 FileUpload 控件自动设置编码格式,然而 HtmlInputFile 控件并不会这样. 1.使用HtmlInputFile文件上传 前台 <form enctype="multipart/form- data

  • java实现分段读取文件并通过HTTP上传的方法

    本文实例讲述了java实现分段读取文件并通过HTTP上传的方法.分享给大家供大家参考.具体如下: 1.首先将文件分段,用RandomAccessFile 2.分段后将分出的内容上传到http URL url = new URL(actionUrl); HttpURLConnection con = (HttpURLConnection) url.openConnection(); /** 允许Input.Output,不使用Cache */ con.setDoInput(true); con.s

  • Web.Config文件配置之限制上传文件大小和时间的属性配置

    在邮件发送系统或者其他一些传送文件的网站中,用户传送文件的大小是有限制的,因为这样不但可以节省服务器的空间,还可以提高传送文件的速度.下面介绍如何在Web.Config文件中配置限制上传文件大小与时间. 在Web.Config文件中配置限制上传文件大小与时间字符串时,是在<httpRuntime><httpRuntime/>节中完成的,需要设置以下2个属性:maxRequestLength属性:用于防止服务器攻击,例如因用户向服务器发送大型文件而导致的拒绝访问.默认值为4096(4

  • asp.net下实现支持文件分块多点异步上传的 Web Services

    本文的客户端应用程序不包括 ASP.Net Web 应用程序! 本文假设 URL: http://localhost/mywebservices/updownload.asmx 共有 4 个程序文件 (Web.Config 就不赘述了) Server Side: 标题中所提到的 "异步" 其实在服务器端的程序并没有什么特殊的,而主要是通过客户端应用程序 异步调用相关 Web Method 实现的! 1. updownload.asmx ,位于 IIS 的某个 Web 共享目录,代码如下

  • asp.net单文件带进度条上传的解决方案

    最近做项目中遇到很多问题,比如带进度条的文件上传,看了网上很多资料还没找到真正意义上的ASP.NET实现进度条上传(可能是我没找到),下面我来跟大家分享一下我实现的这个程序. 首先看下界面效果,当然你可以完全修改界面为你自己所用. 先解释一下这个程序,该程序采用了jquery框架,实现了小文件上传,不超过80Mb,可以在web.config文件中进行相应的配置,但是有个最大值,具体需要查看msdn.开发环境采用visual studio 2013 .net framework 4.5,运行的时候

  • aspupload文件重命名及上传进度条的解决方法附代码第1/2页

    发现还没有aspupload这个组件的,这两样功能的解决方案,现把我的改进方案写在这里!谢谢  关于aspupload上传组件,文件重命名,进度条的问题解决方案!  共用到4个文件,分别是1.asp,2.asp,bar.asp,framebar.asp  运行第一个文件:1.asp,执行上传操作!  复制代码 代码如下: <% '''进度条 dim SPid,PID,barref Set UploadProgress = Server.CreateObject("Persits.Uploa

  • php限制上传文件类型并保存上传文件的方法

    本文实例讲述了php限制上传文件类型并保存上传文件的方法.分享给大家供大家参考.具体如下: 下面的代码演示了php中如何获取用户上传的文件,并限制文件类型的一般图片文件,最后保存到服务器 <?php $allowedExts = array("gif", "jpeg", "jpg", "png"); $extension = end(explode(".", $_FILES["file&qu

  • Docker容器与主机间的文件传输方法(复制/上传/下载)

    1.首先启动容器(以first-mysql容器为例) docker start first-mysql 2.查看容器ID root@kobe:/opt/software/temp/test# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 688e83c55129 mysql "docker-entrypoint.s-" 6 days ago Up 3 seconds 0.0.0.0:3306->33

  • python中watchdog文件监控与检测上传功能

    引言 上一篇介绍完了观察者模式的原理,本篇想就此再介绍一个小应用,虽然我也就玩了一下午,是当时看observer正好找到的,以及还有Django-observer,但Django很久没用了,所以提下这个作为一个笔记. watchdog介绍 Watchdog的中文的"看门狗",有保护的意思.最早引入Watchdog是在单片机系统中,由于单片机的工作环境容易受到外界磁场的干扰,导致程序"跑飞",造成整个系统无法正常工作,因此,引入了一个"看门狗",对

随机推荐