PHP | rename 函数

Lasted 2021-01-20 09:15:42

rename 函数重命名一个文件或目录。

rename() 函数有两个必填参数,第一个参数 oldname 为源文件或目录名,第二个参数 newname 为新文件或目录名。如果 newname 存在将会被覆盖,同时抛出一个警告,可以时候 @ 符号屏蔽。

函数定义

rename ( string $oldname , string $newname , resource $context = ? ) : bool
// 源文件位于:ext/standard/file.c
# 函数定义

PHP_FUNCTION(rename)
{
  ...
  wrapper = php_stream_locate_url_wrapper(old_name, NULL, 0);

  if (!wrapper || !wrapper->wops) {
    php_error_docref(NULL, E_WARNING, "Unable to locate stream wrapper");
    RETURN_FALSE;
  }

  if (!wrapper->wops->rename) {
    php_error_docref(NULL, E_WARNING, "%s wrapper does not support renaming", wrapper->wops->label ? wrapper->wops->label : "Source");
    RETURN_FALSE;
  }

  if (wrapper != php_stream_locate_url_wrapper(new_name, NULL, 0)) {
    php_error_docref(NULL, E_WARNING, "Cannot rename a file across wrapper types");
    RETURN_FALSE;
  }

  context = php_stream_context_from_zval(zcontext, 0);

  RETURN_BOOL(wrapper->wops->rename(wrapper, old_name, new_name, 0, context));
}

参数

  • checkoldname - 源文件或目录名。
  • checknewname - 新文件或目录名。

返回值

  • checkbool - 成功时返回 true,失败时返回 false。

示例1: - 使用 rename() 函数重命名一个文件或目录。

<?php
/**
 * PHP rename() 函数重命名一个文件或目录。
 *
 * @since Version 1.0.0
 * @filesource
 */

// 源文件
$oldname = "foo.txt";

// 重命名文件
rename($oldname, "new.txt");