Vaya al Contenido

PHP Copiar Archivos - SuperHispano

Saltar menú
SuperHispano
+34 012 345 678
info@example.com
España 03:19:18 sábado 07/02/26
Saltar menú
Saltar menú
Saltar menú
Taller > PHP > Manejo de archivos

Copiar Archivos en PHP


Copiar archivos es una operación común en aplicaciones web que manipulan archivos, como cuando se quiere duplicar o hacer un respaldo de un archivo. PHP ofrece varias formas de copiar archivos, que van desde leer y escribir manualmente cada línea hasta el uso de funciones integradas que simplifican todo el proceso.

Método 1: Copiar un archivo línea por línea


El primer método implica leer un archivo línea por línea y escribir esas líneas en un nuevo archivo. Este método es útil si deseas procesar o modificar cada línea antes de copiarla.

Sintaxis básica:

fopen() se usa para abrir los archivos fuente y destino.
fgets() lee una línea del archivo fuente.
fputs() escribe la línea en el archivo de destino.

Ejemplo: Leer y escribir archivo línea por línea


<?php
$archivo_origen = fopen("archivo_fuente.txt", "r");
$archivo_destino = fopen("archivo_destino.txt", "w");

if ($archivo_origen && $archivo_destino) {
while (!feof($archivo_origen)) {
$linea = fgets($archivo_origen);
fputs($archivo_destino, $linea);
}
fclose($archivo_origen);
fclose($archivo_destino);
echo "Archivo copiado con éxito.";
} else {
echo "No se pudo abrir uno de los archivos.";
}
?>


Explicación:


fopen("archivo_fuente.txt", "r"): Abre el archivo fuente en modo de solo lectura.
fgets($archivo_origen): Lee una línea del archivo fuente.
fputs($archivo_destino, $linea): Escribe esa línea en el archivo de destino.
feof($archivo_origen): Verifica si se ha llegado al final del archivo fuente.

Este enfoque es útil cuando deseas realizar algún procesamiento en el contenido del archivo mientras lo copias.

Método 2: Usar file_get_contents() y file_put_contents()


El segundo método es mucho más simple y rápido. PHP proporciona dos funciones útiles: file_get_contents() para leer todo el contenido de un archivo en una cadena, y file_put_contents() para escribir esa cadena en un nuevo archivo.

Sintaxis básica:


file_get_contents(): Lee todo el contenido de un archivo y lo almacena en una variable.
file_put_contents(): Escribe una cadena en un archivo.

Ejemplo: Copiar un archivo con file_get_contents() y file_put_contents()


<?php
$archivo_origen = "archivo_fuente.txt";
$archivo_destino = "archivo_destino.txt";

$contenido = file_get_contents($archivo_origen);
file_put_contents($archivo_destino, $contenido);

echo "Archivo copiado con éxito.";
?>


Explicación:
file_get_contents($archivo_origen): Lee todo el contenido del archivo archivo_fuente.txt y lo almacena en la variable $contenido.
file_put_contents($archivo_destino, $contenido): Escribe el contenido leído en archivo_destino.txt.
Este método es ideal cuando no necesitas procesar cada línea individualmente, y simplemente deseas copiar el contenido completo de un archivo a otro.

Método 3: Usar la función copy()


El tercer método es el más directo y eficiente. PHP ofrece una función específica para copiar archivos: copy(). Esta función toma el archivo fuente y crea una copia en el destino especificado.

Sintaxis:


copy(string $from, string $to, ?resource $context = null): bool

$from: Ruta del archivo fuente.
$to: Ruta del archivo de destino.
$context (opcional): Un contexto de flujo que puede modificar el comportamiento de la función.

Ejemplo: Copiar un archivo con copy()


<?php
$archivo_origen = "archivo_fuente.txt";
$archivo_destino = "archivo_destino.txt";

if (copy($archivo_origen, $archivo_destino)) {
echo "Archivo copiado con éxito.";
} else {
echo "No se pudo copiar el archivo.";
}
?>


Explicación:
copy($archivo_origen, $archivo_destino): Copia todo el archivo archivo_fuente.txt al archivo archivo_destino.txt. Si la copia es exitosa, la función devuelve true.
Este método es ideal cuando simplemente necesitas copiar un archivo sin ningún procesamiento adicional. Es rápido, eficiente y fácil de usar.

Comparación de los métodos


Comparación de los métodos
Método Ventajas Desventajas
Línea por línea Control completo sobre el proceso de copia Más lento para archivos grandes
file_get_contents() y file_put_contents() Rápido y fácil para archivos pequeños y medianos Usa más memoria; no es adecuado para archivos grandes
copy() Método más sencillo y directo No permite manipular el contenido del archivo

Conclusión


PHP ofrece varias maneras de copiar archivos, desde la lectura y escritura manual de líneas hasta el uso de funciones nativas que simplifican el proceso. El método que elijas depende de tus necesidades: si necesitas modificar el contenido durante la copia, puedes usar el método línea por línea; si simplemente deseas copiar el archivo completo de manera rápida, copy() es la mejor opción.
+34 012 345 678
+34 012 345 678 (fax)
example@superhispano.com
Creado con WebSite X5
Regreso al contenido
Icono de la aplicación
SuperHispano Instale esta aplicación en su pantalla de inicio para una mejor experiencia
Toque Botón de instalación en iOS y luego "Agregar a su pantalla"