После проверки существования удаленного файла, описанной в предыдущем примере, файл можно скачать и сохранить к себе на сервер – об этом и будет рецепт.
Для получения удаленного файла воспользуемся функцией
file_get_contents. А для сохранения его на сервер - функцией
file_put_contents.
Пример:
// два примера использования
getAndSaveFile(
"http://vk-book.ru/img/favicon.png", './files/'
);
getAndSaveFile(
"http://vk-book.ru/img/favicon.png",
'./files/', 'name_file.png'
);
/**
* Получить и сохранить файл
*
* @param string $url - ссылка на файл
* @param string $path - путь для сохранения файла
* @param string $fileName - не обязательный параметр,
* имя файла для сохранения
*
* @return bool - результат
*/
function getAndSaveFile($url, $path, $fileName=false)
{
// открываем содержимое файла
$file = @file_get_contents($url);
// если не удалось получить файл, вернем false
if(!$file) return false;
// получаем имя файла, если не задано,
// то берем из урла
if(!$fileName) $fileName = basename($url);
// сохраняем файл
$resultSave = @file_put_contents(
$path . $fileName, $file
);
// проверяем результат сохранения
if ($resultSave || $resultSave > 0) return true;
77
return false;
}
В примере, помимо функций для получения и сохранения файла, была использована функция –
basename, с помощью которой можно получить имя и расширение файла из указанного пути.