1. Bitcoin адрес для пожертвований: 1dapfB97R98wg8J3hknWpMDJ7P61CWjNn
    Скрыть объявление
  2. Участникам форума доступны: Skype, WhatsApp и Telegram конференции. Присоединяйтесь!
  3. Наши основные группы и каналы: VK, Twitter. Подписывайтесь!
  4. Мы открыли музыкальный клуб! Заходи и ставь свое музло!
  5. Скрыть объявление

Динамический фон как на DAPF.RU Способ

Тема в разделе "Алгоритмы и Полезные коды", создана пользователем X-ray, 31 июл 2018.

  1. X-ray

    X-ray Шустроган

    Репутация

    1.199 / 2.815


    Короче пачаны ща будем мутить динамический фон для сайта.
    Нужен PHP + NGINX.

    Создаем файлик img_background.php
    PHP:
    1. <?php
    2. //Массив изображений
    3. $img_array = array(
    4. 'http://ссылка на картинку/1.jpg',
    5. 'http://ссылка на картинку/2.jpg'
    6. );
    7. //Делаем рендом
    8. $ii = mt_rand (0, count($img_array)-1);
    9. //Формируем ссылку
    10. $url = $img_array[$ii];
    11.  
    12. //Епашим CURL функцию, чтобы стянуть картинку по ссылке
    13. function get_web_page( $url )
    14. {
    15.   $uagent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0";
    16.  
    17.   $ch = curl_init( $url );
    18.   curl_setopt($ch, CURLOPT_URL, $url);
    19.   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   // возвращает веб-страницу
    20.   curl_setopt($ch, CURLOPT_HEADER, 0);           // не возвращает заголовки
    21.   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);   // переходит по редиректам
    22.   curl_setopt($ch, CURLOPT_ENCODING, "");        // обрабатывает все кодировки
    23.   curl_setopt($ch, CURLOPT_USERAGENT, $uagent);  // useragent
    24.   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    25.   curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    26.   //curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); //Если нужен прокси
    27.   //curl_setopt($ch, CURLOPT_PROXY, '192.168.1.1:3128'); //Если нужен прокси
    28.   curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); // таймаут соединения
    29.   curl_setopt($ch, CURLOPT_TIMEOUT, 120);        // таймаут ответа
    30.   curl_setopt($ch, CURLOPT_MAXREDIRS, 10);       // останавливаться после 10-ого редиректа
    31.   //curl_setopt($ch, CURLOPT_COOKIEJAR, ''.dirname(__FILE__).'/cookie.txt'); //Если нужны куки
    32.   //curl_setopt($ch, CURLOPT_COOKIEFILE,''.dirname(__FILE__).'/cookie.txt'); //Если нужны куки
    33.  
    34.   $content = curl_exec( $ch );
    35.   $err     = curl_errno( $ch );
    36.   $errmsg  = curl_error( $ch );
    37.   $header  = curl_getinfo( $ch );
    38.   curl_close( $ch );
    39.  
    40.   $header['errno']   = $err;
    41.   $header['errmsg']  = $errmsg;
    42.   $header['content'] = $content;
    43.   return $header;
    44. }
    45. //Получаем картинку
    46. $result = get_web_page($url);
    47.  
    48. //Выводим
    49. header("Content-type: image/jpeg");
    50. echo $result['content'];
    51. ?>
    Пробуем открыть по ссылке хттп://вашсайт.лох/img_background.php
    Если всё работает настраиваем NGINX.
    Добавляем правило для алиаса /wallpaper.jpg с поддержкой пхп и кэшированием (можно и без кэша), чтобы картинка открывалась по ссылке: хттп://вашсайт.лох/wallpaper.jpg
    Код (Text):
    1.  
    2. location =/wallpaper.jpg {
    3. alias /путь/до файла/img_background.php;
    4. include fastcgi_params;
    5. fastcgi_param SCRIPT_FILENAME /путь/до файла/img_background.php;
    6. fastcgi_pass unix:/var/run/php5-fpm.sock; //Это заменить на ваше
    7. add_header Cache-Control "max-age=300";
    8. allow all;
    9. log_not_found off;
    10. access_log off;
    11. }
    12.  
    Перезагружаем NGINX
    Код (Text):
    1. service nginx restart
    И пробуем открыть хттп://вашсайт.лох/wallpaper.jpg

    Если всё заработало - красава, ваще чотко*good*

    Теперь добавляй её в CSS или HTML, чтобы пачаны ох*евали.
    Если надо убрать кэширование, чтобы картинка сразу менялась при обновлении замени
    Код (Text):
    1. add_header Cache-Control "max-age=300";
    на
    Код (Text):
    1. add_header Cache-Control "no-cache";

    Но помни no cache - no money


    joy нравится это.
  2. Злой заяц

    Злой заяц Новичок

    Репутация

    24 / 7


    Скрытый текст:
    Для просмотра скрытого текста Вы должны отключить AdBlock, либо другой блокировщик рекламы.

  3. Habilis

    Habilis Прииикииинь! ;)

    Репутация

    441 / 292


    Прииикиинь!? Хабиля кароч кодир...

    Хабилен ПоХнаПэ круче твоего

    в места
    PHP:
    1. //Делаем рендом
    2. $ii = mt_rand (0, count($img_array)-1);
    3. //Формируем ссылку
    4. $url = $img_array[$ii];
    Мути Ах*неее
    PHP:
    1.  
    2. $url = img_array[array_rand($img_array)];
    3.  
    Адной функцией кароч можно обойтись

     
  4. X-ray

    X-ray Шустроган

    Репутация

    1.199 / 2.815


    array_rand использует вихрь Мерсена только в пхп 7.1, в других вроде нет.

    upload_2018-8-1_14-1-4.png