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)

相关推荐

  • PHP递归的三种常用方式

    递归:函数自己调用自己的一种编程方法,类似于循环,所以递归调用的函数中必须有终止条件,否则就会成为死循环 无限级:其实并不是真正的无限级,只是层级不确定,所以我们称之为无限级 因为常用递归实现无限级分类,所以我们习惯说无限级的时候带上分类. 递归的三种常用技法: 静态变量.全局变量.引用 一 静态变量方式 function loop(){ static $i = 0; echo $i.' '; $i++; if($i<10){ loop(); } } loop();//输出 0 1 2 3 4

  • PHP join()函数用法与实例讲解

    PHP join() 函数 实例 把数组元素组合为一个字符串: <?php $arr = array('Hello','World!','Beautiful','Day!'); echo join(" ",$arr); ?> 定义和用法 join()函数返回一个由数组元素组合成的字符串. join() 函数是 implode() 函数的别名. 注释: join() 函数接受两种参数顺序.但是由于历史原因,explode() 是不行的,您必须保证 separator 参数在

  • ThinkPHP中图片按比例切割的代码实例

    在开发中,经常会遇到图片需要按照一定比例进行缩放的情况,但是,如果一张长宽比为2:1的如果需要按照1:1的比例进行展示,那么这就意味着图片会发生变形.下面便介绍下载tp框架中如何按照比例切割并缩放图片. /** * 切割图片 * @param $path 所要切割的图片的路径 * @param $prefix 给切割后图片的前缀 * @param $width 宽度所占比例 * @param $height 高度所占比例 * @return string 图片名称 */ function siz

  • PHP htmlspecialchars_decode()函数用法讲解

    PHP htmlspecialchars_decode() 函数 实例 把预定义的 HTML 实体 "<"(小于)和 ">"(大于)转换为字符: <?php $str = "This is some <b>bold</b> text."; echo htmlspecialchars_decode($str); ?> 上面代码的 HTML 输出如下(查看源代码): <!DOCTYPE html&

  • PHP levenshtein()函数用法讲解

    PHP levenshtein() 函数 实例 计算两个字符串之间的 Levenshtein 距离: <?php echo levenshtein("Hello World","ello World"); echo "<br>"; echo levenshtein("Hello World","ello World",10,20,30); ?> 定义和用法 levenshtein()

  • PHP implode()函数用法讲解

    PHP implode() 函数 实例 把数组元素组合为一个字符串: <?php $arr = array('Hello','World!','Beautiful','Day!'); echo implode(" ",$arr); ?> 定义和用法 implode()函数返回一个由数组元素组合成的字符串. 注释: implode() 函数接受两种参数顺序.但是由于历史原因,explode() 是不行的,您必须保证 separator 参数在 string 参数之前才行. 注

  • PHP使用PDO操作sqlite数据库应用案例

    本文实例讲述了PHP使用PDO操作sqlite数据库.分享给大家供大家参考,具体如下: 1.需求: 已知: 1).一个json文件,里面是一个二维数组,数组解析出来为: array ( 0 => array ( 'title' => '九十九', ), 1 => array ( 'title' => '电脑九十九', ), 2 => array ( 'title' => '手机九十九', ), 3 => array ( 'title' => '手机电脑九十九

  • PHP htmlspecialchars()函数用法与实例讲解

    PHP htmlspecialchars() 函数 实例 把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体: <?php $str = "This is some <b>bold</b> text."; echo htmlspecialchars($str); ?> 上面代码的 HTML 输出如下(查看源代码): <!DOCTYPE html> <html

  • PHP lcfirst()函数定义与用法

    PHP lcfirst() 函数 实例 把 "Hello" 的首字符转换为小写.: <?php echo lcfirst("Hello world!"); ?> 定义和用法 lcfirst()函数把字符串中的首字符转换为小写. 相关函数: ucfirst() - 把字符串中的首字符转换为大写. ucwords() - 把字符串中每个单词的首字符转换为大写. strtoupper() - 把字符串转换为大写. strtolower() - 把字符串转换为小

  • PHP的微信支付接口使用方法讲解

    在开发之中经常会使用到支付的功能,现在常用的两种支付方式是支付宝和微信.相对而言,支付宝的文档较为健全,并且配置和调用方式方式比较简单,这里就不过多的描述. 首先去微信官网网站下去下载服务端的demo:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 这里虽然是官网提供的公众号支付的demo,虽然微信支付的预下单等都可以在前端进行实现,不过官方还是建议在服务端进行处理.下载后,将其中的demo引入你的项目就好,注意的是如果

随机推荐