Рецепт №70. Из книги «128 рецептов php»
Перейти к оглавлению
После проверки существования удаленного файла, описанной в предыдущем примере, файл можно скачать и сохранить к себе на сервер – об этом и будет рецепт.
Для получения удаленного файла воспользуемся функцией 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;
return false;
}
В примере, помимо функций для получения и сохранения файла, была использована функция – basename, с помощью которой можно получить имя и расширение файла из указанного пути.
