在 PHP 中移动文件到一个文件夹
Nimra Ejaz
2022年5月13日
本文将解释将文件从一个文件夹移动到另一个文件夹的方法。这可能看起来很棘手,但这样做非常容易。你所需要的只是练习 PHP 的原生函数 rename
。它的名字暗示它通过重命名文件或目录来工作。一开始可能会让你感到困惑,但重命名文件的路径最终会将其移动到新位置。
在 PHP 中使用 rename()
函数将文件移动到另一个文件夹
为了使用 rename
功能,我们需要指定要移动的文件的源位置和目标位置。源位置是保存文件的当前目录,目标位置是我们要移动文件的位置。让我们在一个例子的帮助下讨论它!
假设我们有两个名为 source_directory
和 dest_directory
的目录。我们在 source_directory
中有一个名为 move-test.txt
的文件,我们希望使用 PHP 将它移动到 dest_directory
。
让我们看一下下面的代码:
<?php
$currentLocation = 'source_directory/move-test.txt';
$newLocation = 'dest_directory/move-test.txt';
$moved = rename($currentLocation, $newLocation);
if($moved)
{
echo "File moved successfully";
}
?>
上述代码的解释如下。
- 文件的当前路径首先使用变量
$currentLocation
指定。 - 然后,指定新位置以及文件名。简而言之,它是我们希望将文件移动到的新位置。
- 如果你想给你的文件一个不同的名字,可以通过用你的新文件名改变变量
$newLocation
中的文件名move-test.txt
来完成。 - 重命名函数有两个参数:
$currentLocation
为移动操作前的文件路径,$newLocation
为成功移动到所需位置后的新文件路径。
重要注意事项
如果移动操作成功,rename
函数返回 TRUE
。这里需要注意的两个重要事项是:
- 要移动的文件必须存在。你应该确保你尝试移动的文件必须存在。否则,它会抛出一个警告:
系统找不到指定的文件。
- 可以覆盖现有文件。rename 函数会导致覆盖现有文件,这意味着如果
$newLocation
是某个现有文件的名称,则在使用 rename 函数进行移动操作后,现有文件将被覆盖。
检查文件是否存在
为了在将文件移动到另一个文件夹之前检查文件是否存在,你可以使用 PHP 提供的 is_file
函数。
使用 is_file
函数检查文件是否存在的代码示例如下:
<?php
$currentLocation = 'source_directory/move-test.txt';
$newLocation = 'dest_directory/move-test.txt';
if(is_file($currentLocation))
{
$moved = rename($currentLocation, $newLocation);
}
if($moved)
{
echo "File moved successfully";
}
?>
在上面的例子中,is_file($currentLocation)
用于在调用执行移动操作的重命名函数之前检查我们希望移动的文件是否存在。
检查文件是否未被覆盖
以下代码示例说明了确保在将文件从一个位置移动到另一个位置时不会覆盖现有文件的方法:
<?php
$currentLocation = 'source_directory/move-test.txt';
$newLocation = 'dest_directory/move-test.txt';
if(!is_file($newLocation))
{
$moved = rename($currentLocation, $newLocation);
}
if($moved)
{
echo "File moved successfully";
}
?>
在上面的示例中,is_file($newLocation)
用于检查是否存在另一个文件,该文件在调用 rename
函数时可能会被覆盖。