PHP Copy File

Summary: in this tutorial, you will learn how to copy a file by using the PHP copy() file function from one location to another.

Introduction to the PHP copy() file function #

To copy a file from one location to another, you use the copy() function:

copy ( string $source , string $dest , resource $context = ? ) : boolCode language: PHP (php)

The copy() file function has three parameters:

  • $source is the full path to the file that you want to copy.
  • $dest is the full path to the file to which the file will copy.
  • $context is a valid context resource.

The copy() function returns true if the file is copied successfully or false in case there was an error during copying the file.

Note that if the $dest file exists, the copy() function will overwrite it.

PHP copy file examples #

Let’s take some examples of using the copy() function.

1) A simple PHP copy file example #

The following example uses the copy() function to copy the readme.txt to readme.bak file:

<?php

$source = 'readme.txt';
$dest = 'readme.bak';

echo copy($source, $dest)
    ? "The file $source was copied to $dest  successfully!"
    : "Error copying the file $source";Code language: HTML, XML (xml)

2) Check if the destination file exists before copying #

The following example uses the copy() function to copy the readme.txt file to the readme.bak file. Also, it checks if the readme.bak exists before overwriting the file:

<?php

$source = 'readme.txt';
$dest = 'readme.bak';

!file_exists($source) && die("The file $source does not exist");

file_exists($dest) && die("The file $dest already exists");

echo copy($source, $dest)
    ? "The file $source was copied to $dest  successfully!"
    : "Error copying the file $source";Code language: HTML, XML (xml)

3) PHP copy file helper function #

The following copy_file() helper function copies a file. It returns false if the source file does not exist or the destination file exists and the overwritten argument is true:

<?php

function copy_file($source, $dest, $overwritten = true): bool
{
    if (!file_exists($source)) {
        return false;
    }

    if (!$overwritten && file_exists($dest)) {
        return false;
    }

    return copy($source, $dest);
}Code language: HTML, XML (xml)

Summary #

  • Use the PHP copy() file function to copy a file from a location to another.
  • The copy() function overwrites the destination file if it exists.
Did you find this tutorial useful?