Muchas veces tenemos que mover archivos entre servidores y comúnmente los bajamos, y volvemos a subir lo que nos genera pérdida de tiempo que nos ahorraríamos con pocas líneas de código o utilizando la consola (si tenemos acceso a ella), pero en este caso veremos cómo bajar un archivo de una url y agregarlo en nuestro servidor.

Empecemos con un ejemplo utilizando las funciones file_get_contents y file_put_contents el primero básicamente llama el archivo y el segundo lo guarda en la ubicación donde necesitamos agregar dicho archivo, pero vamos con un ejemplo práctico:

// primero obtenemos el contenido y lo almacenamos en una variable 
$contenido = file_get_contents($url_origen);
// posteriormente almacenamos el contenido en la ruta elegida por ejemplo guardar en sería / para agregarla en el mismo directorio donde se llama el archivo php original.
file_put_contents($guardar_en, $contenido);

Ahora pongamos lo anterior en una función:

//Variables
$url_archivo = "https://servidorremoto.dominio/archivo.zip"; // aquí ponemos la ruta al archivo a descargar 
$nombre_archivo = "archivoenservidor.zip"; // nombre que le daremos al archivo descargado

function guardar_archivo_remoto($url_archivo, $guardar_en)
{
$contenido = file_get_contents($url_archivo);
file_put_contents($guardar_en, $contenido);
}

guardar_archivo_remoto($url, realpath("./") . '/'.$nombre_archivo);

Para el ejemplo anterior utilizamos la ruta absoluta mediante realpath pero podemos utilizar una ruta relativa, con esto tendremos almacenado el archivo zip del servidor remoto en nuestro servidor lo que nos ahorrará tiempo sobre todo cuando trabajamos con apis que necesitan que actualicemos archivos.

Además de esta forma podríamos hacerlo con curl o fopen, solo tomen en cuenta las limitantes del servidor donde realicen el procedimiento.