PHP中rename函数移动文件或文件夹

偶然做文件移动的时候总结的一个知识点:刚开始的时候,以为跟上传文件一样可以用move_uploaded_file这个函数去移动一个文件,试了之后发现不行,网上搜了一把,发现可以用rename这个函数来实现文件或文件夹的移动,很奇怪,手册上写的是重名文件或文件夹的,没想到可以用来移动文件

关于函数返回值:

bool rename ( string $oldname , string $newname [, resource $context ] )
尝试把 oldname 重命名为 newname,若操作成功则返回True,失败返回False。

1. 对于文件,rename可以在不同盘符之间移动。
2. 对于空文件夹,rename也可以在不同盘符之间移动。但是目标文件夹的父目录必须存在。
3. 对于非空文件夹,只能在同一盘符下移动。

用法如下:

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

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

网上还有一种方法是用copy+unlink,不过听说移动的速度不怎样,所以也就不说了,用rename就行,简单、方便、快捷

可能习惯用copy,unlink来实现文件的移动,对于大文件,可能会消耗很长时间,但是经测试发现性能不行。

补充:中文文件及文件夹的问题

时间: 2024-08-03 09:39:13

PHP中rename函数移动文件或文件夹的相关文章

php中rename函数用法分析_php技巧

本文实例分析了php中rename()函数用法.分享给大家供大家参考.具体如下: php filesystem 函数,rename() 函数重命名文件或目录,若成功,则该函数返回 true.若失败,则返回 false. 语句:rename(oldname,newname,context) 参数 描述 oldname 必需,规定要重命名的文件或目录. newname 必需,规定文件或目录的新名称 context 必需,规定文件句柄的环境,context 是可修改流的行为的一套选项 注释:在 php

php中rename()函数

php filesystem 函数 rename() 函数重命名文件或目录. 若成功,则该函数返回 true.若失败,则返回 false. rename(oldname,newname,context) 参数 描述 oldname 必需.规定要重命名的文件或目录. newname 必需.规定文件或目录的新名称. context 必需.规定文件句柄的环境.context 是可修改流的行为的一套选项. 注释:在 php 4.3.3 之前,rename() 不能在基于 *nix 的系统中跨磁盘分区重命

php中rename()函数的妙用

函数 大家都知道,rename()函数可以对文件或目录进行重命名的操作.其实它还可以做很多事情. 熟悉unix的朋友应该知道shell命令mv,它相当与win32的移动,而且移动的同时可进行重命名.我发现,php的rename()函数就相当于mv,它不仅仅只有简单的重命名的功能,同样可以改变文件甚至整个目录的路径. 例如: $oldpath ----文件或目录原来路径 $newpath ----新定义路径 那么 rename($oldpath,$newpath)就可以完成文件/目录移动的操作 经

详解C语言中的rename()函数和remove()函数的使用方法_C 语言

C语言rename()函数:重命名文件或目录头文件: #include <stdio.h> 函数rename()用于重命名文件.改变文件路径或更改目录名称,其原型为    int rename(char * oldname, char * newname); [参数]oldname为旧文件名,newname为新文件名. [返回值]修改文件名成功则返回0,否则返回-1. 重命名文件: 如果newname指定的文件存在,则会被删除. 如果newname与oldname不在一个目录下,则相当于移动文

文件重命名rename函数用法

文件重命名rename函数用法 有图片img_1.jpg,img_2.jpg,img_3.jpg....要分别放到文件夹img_1,文件夹img_2,文件夹img_3,同时把文件名都改为large.jpg. <?php教程 $s=explode("n",trim(`dir/b E:11-2caps教程`));//获取该路径下所有文件名 //print_r($s); foreach($s as $rs) {     $name=explode(".",$rs);

模板函数-函数模板在头文件和main函数中应该怎么写

问题描述 函数模板在头文件和main函数中应该怎么写 第一次写,提示找不到标示符max,求指正 解决方案 即便在外部文件中定义了max,也应该在引用文件中extern声明后再使用 另外你的max.h文件中将你的3到10行代码屏蔽了,改为: #ifndef MAX_H #define MAX_H 解决方案二: main函数究竟应该怎么写?main函数究竟应该怎么写?c++模板类/模板函数的声明与定义应该放在头文件里

mysql-makefile编译不能检测到头文件类中的函数修改

问题描述 makefile编译不能检测到头文件类中的函数修改 很奇怪的问题,我写了一个测试程序,用makefile进行编译,但如果我在头文件里声明了新的函数,在.cpp文件中定义这个函数,make时会提示我----错误:成员函数'int mysql_soci_test::sum()'未在类'mysql_soci_test'中声明--这个错误,但如果我不用makefile编译,用g++直接编译,就不会有问题. 下面是我的g++语句:g++ mysql_soci_test.h mysql_soci_

youcompleteme-VIM插件YouCompleteMe如何配置才能对自定义头文件中的函数和类型进行补全

问题描述 VIM插件YouCompleteMe如何配置才能对自定义头文件中的函数和类型进行补全 我最近在折腾YouCompleteMe,对基本的C/C++关键字都能进行补全,但不能对自己项目中的头文件中的标识符进行补全,已经在 .ycm_extra_conf.py中通过'-I','自己项目头文件的路径'的方式把自己的头文件路径加入了flags中,但还是不能对自己编写的头文件中的函数和类型进行补全,应该怎么配置??? 解决方案 我看了你的答案,没什么有用的内容 解决方案二: 可以看看这篇博文: h

在html中调用js文件(无路径错误和书写错误),但js中的函数无法执行

问题描述 在html中调用js文件(无路径错误和书写错误),但js中的函数无法执行 我在html中调用js文件 这个文件中有5个函数,其中有一个函数已经可以用了,但是这个文件中的另外两个函数在调用的时候却没有反映,具体代码如下html代码 <form name=""form_dx"" action=""#"" method=""post"" onSubmit=""