XBEHOLI
@XBEHOLI
back-end developer

Как получить эти значения?

Не давно я задавал вопрос на счёт облачного хранилища, мне ответили, что делать лучше через хэш суммы. Так вот, есть вот такой простой код
$hash = md5_file("test.png");
Возвращает он хэш суммы, основная папка моих файлов будет "web" мне нужно преобразовать вот такой путь "web/60/0f/3f/600f3f597c405161802422.png"
Как мне получить 60, 0f и 3f? Это будут мои сами папки, делаю я по принципу как и хабр. Как мне получить данные значение без гкода?
  • Вопрос задан
  • 113 просмотров
Пригласить эксперта
Ответы на вопрос 2
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
Например:
$result = str_split(substr($hash, 0, 6), 2);
или
preg_match('#^(..)(..)(..)#', $hash, $result);

Но зачем оставлять 60, 0f и 3f в имени файла? Они же уже используются в названиях директорий.
preg_match('#^(..)(..)(..)(.+)$#', $hash, $result);

Сразу получить нужный путь:
$result = preg_replace('#^(..)(..)(..)(.+)$#', 'web/$1/$2/$3/$4.png', $hash);
Ответ написан
@hello_my_name_is_dany
Backend Developer (Node.js, PHP, C#)
Список используемых файлов можно хранить в базе с путями. А разделение по папкам - берём первые два символа из хеша, создаём папку с таким именем, если нет, потом следующие два символа, снова создаём папку, если нет, потом остаток хеша используем как имя файла + расширение. По полученному пути сохраняем файл и заносим в базу.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
LAPTOP.RU Москва
от 150 000 до 190 000 ₽
LAPTOP.RU Кострома
от 25 000 до 65 000 ₽
LAPTOP.RU Москва
от 130 000 до 170 000 ₽
07 мар. 2021, в 23:34
5000 руб./за проект
07 мар. 2021, в 23:14
10000 руб./за проект