<?
/////////////////////////////////////////////////////////////////
// Сниппеты для обработки файлов
/////////////////////////////////////////////////////////////////
// -------------------------------------------------------------
// Находим Document Root если известна вложенность для данного файла
// возникает при установке скриптов на cron,
// когда нет массива $_SERVER["DOCUMENT_ROOT"]
// -------------------------------------------------------------
$_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__)."/../..");
// -------------------------------------------------------------
// Получение и сохранение файла
// -------------------------------------------------------------
/**
* http://vk-book.ru/skachat-i-soxranit-fajl-s-sajta/
*
* @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;
}
// пример использования
var_dump(getAndSaveFile("http://vk-book.ru/img/codirovka.png", './files/'));
var_dump(getAndSaveFile("http://vk-book.ru/img/codirovka.png", './files/', 'name_file.png'));
// -------------------------------------------------------------
// Вывод полного дерева каталога с файлами и подпапками
// -------------------------------------------------------------
function showTree($folder, $space) {
/* Получаем полный список файлов и каталогов внутри $folder */
$files = scandir($folder);
foreach($files as $file) {
/* Отбрасываем текущий и родительский каталог */
if (($file == '.') || ($file == '..')) continue;
$f0 = $folder.'/'.$file; //Получаем полный путь к файлу
/* Если это директория */
if (is_dir($f0)) {
/* Выводим, делая заданный отступ, название директории */
echo $space.$file."<br />";
/* С помощью рекурсии выводим содержимое полученной директории */
showTree($f0, $space.'—');
}
/* Если это файл, то просто выводим название файла */
else echo $space.$file."<br />";
}
}
/* Запускаем функцию для текущего каталога */
showTree("./", "");
?>