[text] ggbet

Viewer

  1. <?php
  2. set_time_limit(0); // убираем ограничение по времени выполнения скрипта
  3. ob_implicit_flush();
  4.  
  5. function random_string($length)
  6. { // функция генерации рандомной строки
  7.         $chars = "abcdefghijklmnopqrstuvwxyz1234567890"; // символы из которых генерируем
  8.         $numChars = strlen($chars); // Определяем длину $chars
  9.         $string = ''; // задаем пустую переменную
  10.         for ($i = 0; $i < $length; $i++) { // Собираем строку
  11.                 $string.= substr($chars, rand(1, $numChars) - 1, 1);
  12.         }
  13.         return $string; // Возвращаем готовую строку
  14. }
  15.  
  16. function get_http_response_code($url) { // функция проверки http кода
  17.         $headers = get_headers($url);
  18.         return substr($headers[0], 9, 3);
  19. }
  20.  
  21. if (!file_exists('lightshot_images')) { // создаем директорию куда сохранять картинки, если отсутствует
  22.         mkdir('lightshot_images', 0777);
  23. }
  24.  
  25. $options = array(
  26.         'http' => array(
  27.                 'method' => "GET",
  28.                 'header' => "Accept-language: en\r\n" . "User-Agent: Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.102011-10-16 20:23:10\r\n"
  29.         )
  30. );
  31. $context = stream_context_create($options);
  32.  
  33. while (1) {
  34.         $randstring = random_string(5); // генерируем рандомную сроку
  35.         $htmldata = file_get_contents('https://prnt.sc/m' . $randstring, false, $context); // подставляем рандомную строку и получаем код страницы
  36.         preg_match_all('/<meta name=\"twitter:image:src\" content=\"(.*?)\"\/>/is', $htmldata, $img_url); // парсим регуляркой url картинки
  37.         if (strlen($img_url[1][0]) > 1) { // проверяем длину полученной строки, если больше 1 - картинка по этому адресу есть
  38.                 $imgs = str_replace('//st.prntscr', 'https://st.prntscr', $img_url[1][0]);
  39.                 $localname = array_pop(explode('/', $img_url[1][0])); // разбиваем строку в массив и извлекаем последний элемент массива (т.е. imagename.png)
  40.                 $localpath = "./lightshot_images/" . $localname; // определяем куда будет сохраняться картинка локально.
  41.                 if (get_http_response_code($imgs) != "200") {
  42.                         echo "<span style='color:red;display:block;margin-bottom:10px;font-size:14px;'>404. По адресу " . $imgs . " картинки больше нет :(</span>";
  43.                 } else {
  44.                         file_put_contents($localpath, file_get_contents($imgs, false, $context)); // скачиваем, можно было бы реализовать через curl, но на мой взгляд это проще и быстрее
  45.                         echo "<span style='color:green;display:block;margin-bottom:10px;font-size:14px;'>Сохранение - " . $localname . " , url - http://prntscr.com/m" . $randstring . " , скачиваем с " . $imgs . "</span>";
  46.                 }
  47.         } else {
  48.                 echo "<span style='color:red;display:block;margin-bottom:10px;font-size:14px;'>По адресу http://prntscr.com/m" . $randstring . " нет картинки</span>";
  49.         }
  50. }
  51. ?>

Editor

You can edit this paste and save as new: