PHP скрипт для массового вычисления base64 хеш суммы изображений/файлов

archive view archive save

article PHP скрипт для массового вычисления base64 хеш суммы изображений/файлов можно использовать для обработки большого количества файлов. В большинстве распространенных браузерах есть поддержка фичи "data: URL" <img src="https://static.itmag.pro/data:image/gif;base64,base64_encode" />

Так званая схема "data: URL" позволяет встроить изображение в тело ХТМЛ страницы без его загрузки с сервера, что поможет сэкономить ресурсы.

Таким же образом "data: URL" можно встроить и в CSS стили, заменив src="https://static.itmag.pro/data:image/gif;base64,base64_encode" на url(data:image/gif;base64,base64_encode), где base64_encode - это base64 хеш сумма изображения/файла, а "gif" тип файла (изображения) заменить на нужный (png, jpg etc).

Вычислить base64 хеш сумму для каждого изображения/файла по отдельности довольно утомительно, для этого можно использовать приведенный ниже PHP скрипт:

<?php 
 
// Сканируем содержимое каталога и помещаем в одномерный PHP массив
$dir_list = scandir('./');
// Подсчитываем количество элементов PHP массива
$c_dir_list = count($dir_list);
 
// Запускаем цикл перебора элементов PHP массива 
for($i = 0; $i < $c_dir_list; $i++)
{
    // Обрабатываем только изображения
    if(preg_match('/(.gif|.jpg|.png|.jpeg)/', $dir_list[$i]))
    {
        // 
        $base64_code = base64_encode(file_get_contents($dir_list[$i]));
        echo $dir_list[$i] . ': ' . '<br />'
            . '<img src="https://static.itmag.pro/data:image/' 
                . substr(strrchr($dir_list[$i], "."), 1) . ';base64,'
                . $base64_code . '" alt="" />'
            . '<br /><br />' . 'Base64 code:' . '<br />'
            . '<textarea rows="10" cols="45">' . '<img src="https://static.itmag.pro/data:image/' 
                . substr(strrchr($dir_list[$i], "."), 1) . ';base64,'
                . $base64_code . '" alt="" />' . '</textarea>'
            . '<hr />';
    }
}

Достаточно загрузить все изображения в один каталог, поместить туда скрипт и открыть в браузере УРЛ к PHP скрипту, который просканирует каталог/директорию, выведет имя для каждого файла изображения, само изображение в формате "data: URL", а чуть ниже его, в текстовой области отобразит сам ХТМЛ код изображения, который можно использовать по своему усмотрению.

Не стоит злоупотреблять схемой "data: URL" или использовать её для очень больших изображений, ибо base64 хеш сумма изображения/файла "весит" больше чем сам файл. Схема "data: URL" хорошо подойдет для базового стилевого оформления отдельных элементов сайта.

Также нужно иметь ввиду, что схема "data: URL" (data:image) не поддерживается браузером IE ниже 7-ой версии.


Об авторе
Иван Шаман
Меня нет ни в Инстаграмме ни в Фейсбуке, я просто хожу по улицам и рассказываю первым встречным: сколько зарабатываю; с кем дружу; где живу и чем дышу. У меня даже появилось несколько подписчиков: ПСИХоЛОХ и участковый полицай!
Ещё статьи автора
Комментарии в блоге
Новое на форуме