专栏首页恩蓝脚本PHP中rename()函数的妙用讲解

PHP中rename()函数的妙用讲解

大家都知道,rename()函数可以对文件或目录进行重命名的操作。其实它还可以做很多事情。

熟悉unix的朋友应该知道shell命令mv,它相当与win32的移动,而且移动的同时可进行重命名。我发现,php的rename()函数就相当于mv,它不仅仅只有简单的重命名的功能,同样可以改变文件甚至整个目录的路径。

例如:

$oldpath —-文件或目录原来路径 $newpath —-新定义路径

那么 rename(oldpath,newpath)就可以完成文件/目录移动的操作

经过我的测试,win32和unix的php4版本都支持这个功能。

另外,好象php4的win32版取消了unlink()函数。那么还可以巧用rename()函数来完成删除的操作,例如:

$path —- 文件或目录路径 $tmp —- tmp目录(/tmp)

用rename(path,tmp) 将文件移动到tmp目录.

网上有一种方法是copy+unlink来移动文件,但是遇到大文件时会消耗大量时间,对性能不怎么友好,可以使用rename()来移动文件,速度非常快

关于rename()函数

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

注意:

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

2. 对于空文件夹,rename()可以在不同盘符间移动。但是目标文件夹的父目录必须存在。

3. 对于文件,rename()也能在不同盘符之间移动。

实列代码:

rename("/file1/www.txt", "/file2/my_file.txt");

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 详解如何在Linux上一次性批量重命名一组文件

    在 Linux 中,我们对文件进行重命名一般都会使用到 mv 命令,这在对单个文件重命名时非常方便。但是,若我们想要对一组文件进行重命名,mv 就有些乏力了。不...

    砸漏
  • Android studio设置文件头定制代码注释的方法

      在下载或者看别人的代码我们常会看见,每一个文件的上方有个所属者的备注。如果要是一个一个备注那就累死了。

    砸漏
  • thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解

    本文实例讲述了thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果。分享给大家供大家参考,具体如下:

    砸漏
  • Linux命令(26)——rename命令

    功能类似于mv,可实现文件或者目录的重命名,mv不能批量处理,而rename可以。

    Dabelv
  • 现代控制理论思考题----倒立摆小车控制算法研究

    zhangrelay
  • 【IEDA】Typo: In woed 'xxx' more...(Ctrl + F1) 拼写检查

      不知道大家有没有发现,在我们用 IDEA 敲击代码的时候,经常会发现如下所示的现象:

    黑泽君
  • Python实践 | 亿级经纬度距离计算工具V2

    计算经纬度的代码网上一搜一大把,通常是单点距离的计算,无法实现批量计算,本文将利用pandas实现亿级经纬度距离代码的实现。 最短距离计算建议参考下文,mapi...

    披头
  • 如何让局域网内的其他人访问到自己在Tomcat上部署的项目

     学JSP第三节课,今天老师上课讲了开启Tomcat之后,将自己电脑的文件放到指定的目录下,可以让同宿舍的人访问并且下载,老师只是提了一下,没有具体讲,后来我看...

    mathor
  • 为什么程序员年龄大了,就会慢慢跟不上技术发展?

    每个人都需要有一个职业,不管做干什么。职业就像一个标签,它是一个人的社会定位,“你是干什么的”。当你缺少这个标签的时候,至少在社会上你就处于“漂”的状态。所以当...

    web前端教室
  • Maven Compilation error [package org.testng.annotations does not exist]

    背景 在执行mvn test的时候,提示package org.testng.annotations does not exist 解决办法 Open pom....

    千往

扫码关注云+社区

领取腾讯云代金券