Laravel - 致力于提供优质PHP中文学习资源

pFinal.cn

php怎样移动文件

PHP 中的 rename() 函数可以实现 rename() 函数重命名文件或目录或者移动到其他目录下。 若成功,则该函数返回 true。若失败,则返回 false。 rename(oldname,newname,context) 参数说明 oldname 必需。规定要重命名的文件或目录。 newname 必需。规定文件或目录的新名称。 context 可选。规定文件句柄的环境。context 是可修改流的行为的一套选项。 注释: 在 PHP 4.3.3 之前,rename() 不能在基于 *nix 的系统中跨磁盘分区重命名文件。 用于 oldname 中的封装协议必须和用于 newname 中的相匹配。 对 context 的支持是 PHP 5.0.0 添加的。 例如: <?php //把当前目录下的images.txt文件移动到test目录下并改名为pictures.txt rename("images.txt","test/pictures.txt"); ?>

rename几种常见情况:

  1. 对于文件, rename可以在不同盘符之间移动.

  2. 对于空文件夹,rename也可以在不同盘符之间移动. 但是目标文件夹的父目录必须存在(要做判断如果不存在就要先建文件夹).

  3. 对于非空文件夹, 只能在同一盘符下移动.

不过,1和3,应该差不多能够对付所有的应用情况了.

<?php rename("D:/logs/write/theme/history","F:/logs/write/theme/history"); ?>

经测试过, 一个40M的文件, copy+unlink方式需要7.6249899864197秒

而rename方式,只需要0.024738788604736,快300倍.

因此,谨慎使用copy+unlink方式.

评论