使用 PHP 复制目录内容
在 PHP 中将目录的全部内容复制到另一个位置可能是一项简单的任务,但会遇到诸如流未找到错误之类的问题可能会令人沮丧。为了避免这种情况,需要一种更明确的方法。
为了克服在 copy() 函数中使用通配符的限制,可以使用名为 recurseCopy() 的递归函数。此函数允许复制多级目录结构及其内容。
recurseCopy() 函数采用三个参数:
该函数迭代源目录的文件和子目录。如果遇到文件,则直接复制到目标目录。如果找到子目录,该函数会递归调用自身,将其内容复制到目标目录下相应的子目录中。
以下是使用 recurseCopy() 函数的示例 PHP 代码:
<code class="php">function recurseCopy(string $sourceDirectory, string $destinationDirectory, string $childFolder = ''): void { $directory = opendir($sourceDirectory); if (is_dir($destinationDirectory) === false) { mkdir($destinationDirectory); } if ($childFolder !== '') { if (is_dir("$destinationDirectory/$childFolder") === false) { mkdir("$destinationDirectory/$childFolder"); } while (($file = readdir($directory)) !== false) { if ($file === '.' || $file === '..') { continue; } if (is_dir("$sourceDirectory/$file") === true) { recurseCopy("$sourceDirectory/$file", "$destinationDirectory/$childFolder/$file"); } else { copy("$sourceDirectory/$file", "$destinationDirectory/$childFolder/$file"); } } closedir($directory); return; } while (($file = readdir($directory)) !== false) { if ($file === '.' || $file === '..') { continue; } if (is_dir("$sourceDirectory/$file") === true) { recurseCopy("$sourceDirectory/$file", "$destinationDirectory/$file"); } else { copy("$sourceDirectory/$file", "$destinationDirectory/$file"); } } closedir($directory); } $sourceDirectory = 'my_source_dir'; $destinationDirectory = 'my_destination_dir'; recurseCopy($sourceDirectory, $destinationDirectory);</code>
此代码将递归地将 my_source_dir 目录的内容复制到 my_destination_dir 目录,保留目录结构和文件内容。
以上是如何在 PHP 中递归复制目录内容?的详细内容。更多信息请关注PHP中文网其他相关文章!