php实现移动文件或文件夹的两种方法

时间:2016-08-03
php移动文件或文件夹到其他目录有两种实现方法,第一种方法是使用php文件函数copy和unlink,第二中方法是使用rename函数,本文章通过实例分别介绍如何使用这两个方法实现文件的移动,需要的朋友可以参考一下。

php如何实现文件或文件夹的移动?可能有的朋友会想当然的认为可以使用文件上传函数move_uploaded_file,其实该函数并不能实现文件的移动。

php要实现文件或文件夹的移动,可以使用copy和unlink函数,或者是使用rename函数。请看下面具体实现方法。

php使用copy和unlink函数函数移动文件

先简单介绍copy函数和unlink函数:

copy — 拷贝文件

语法:

bool copy ( string $source , string $dest [, resource $context ] )

将文件从 source 拷贝到 dest

unlink — 删除文件

语法:

bool unlink ( string $filename [, resource $context ] )

删除 filename。和 Unix C 的 unlink() 函数相似。 发生错误时会产生一个 E_WARNING 级别的错误。

下面来看一下如何使用copy和unlink实现文件的移动

<?php
$file='userfile/a/abc.txt'; //旧目录
$newFile='userfile/b/newabc.txt'; //新目录
copy($file,$newFile); //拷贝到新目录
/* http://www.manongjc.com/article/1303.html */
unlink($file); //删除旧目录下的文件
?>

php使用rename函数移动文件

php参考手册上是这样介绍rename函数的:

rename — 重命名一个文件或目录

语法

bool rename ( string $oldname , string $newname [, resource $context ] )

尝试把 oldname 重命名为 newname

参数

  1. oldname 用于 oldname 中的封装协议必须和用于 newname 中的相匹配。
  2. newname 新的名字。
  3. context 在 PHP 5.0.0 中增加了对上下文(Context)的支持。

rename用于移动文件或文件夹,实例如下:

rename("/tmp/www.txt", "/home/my_file.txt");

第一个参数放原地址,第二个参数放目标地址。

小结

上面两种方法都可以实现移动文件,但从性能上讲,rename方法更好,因为rename简单、方便、快捷,而且对于大文件,第一种方法可能会消耗很长时间。