Advertisement
Guest User

Untitled

a guest
Jan 21st, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 10.67 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <meta charset="UTF-8">
  5.         <title>http://www.watchthedeer.com - Galerie</title>
  6.         <script type="text/javascript" src="http://tablesorter.com/jquery-latest.js"></script>
  7.         <script type="text/javascript" src="http://tablesorter.com/__jquery.tablesorter.min.js"></script>
  8.     </head>
  9.     <body>
  10.         <?php
  11.             /**
  12.              * Zmiana ustawień, wyświetlanie tylko błędów krytycznych bez warningów
  13.              */
  14.             error_reporting(E_ERROR);
  15.        
  16.             /**
  17.              * Ustawienie przeszukiwania
  18.              */
  19.             $przeszukiwana_domena = "http://www.watchthedeer.com";
  20.             $przeszukiwana_strona = file_get_contents("$przeszukiwana_domena/photos.aspx");
  21.            
  22.             /**
  23.              * Ustawienia połączenia SQL
  24.              */
  25.             $host = "localhost";
  26.             $user = "test_galeria";
  27.             $pass = "Nt85UDWznx4Y";
  28.             $db = "test_galeria";
  29.            
  30.             /**
  31.              * Zapytanie do utworzenia tabeli:
  32.              *
  33.              * CREATE TABLE zdjecia (
  34.              *    id int NOT NULL AUTO_INCREMENT,
  35.              *    nazwa_galerii varchar(255) DEFAULT NULL,
  36.              *    link_do_zdjecia text NOT NULL,
  37.              *    stempel timestamp NOT NULL,
  38.              *    PRIMARY KEY (id)
  39.              * )
  40.              * ENGINE = INNODB;
  41.              */
  42.            
  43.             /**
  44.              * Wybór akcji wedle parametru $_GET['action'] adresu URL
  45.              */
  46.             $akcja = filter_input(INPUT_GET, 'action');
  47.            
  48.             /**
  49.             * Łączenie do bazy danych
  50.             */
  51.             try
  52.             {
  53.                $db = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
  54.             }
  55.             catch (PDOException $e)
  56.             {
  57.                print "Błąd połączenia z bazą!: " . $e->getMessage() . "<br/>";
  58.                die();
  59.             }
  60.  
  61.             /**
  62.              * Generowanie i zapis do bazy zdjęć
  63.              */
  64.             if($akcja == 'generate')
  65.             {
  66.                 /**
  67.                  * Czyszczenie tabeli zdjęć
  68.                  */
  69.                 $query = "TRUNCATE TABLE zdjecia";
  70.                 $sql = $db->exec($query);
  71.                
  72.                 /**
  73.                  * Dodanie do linków wartości domeny
  74.                  */
  75.                 $strona_z_linkami = str_replace("<a href=\"../", "<a href=\"$przeszukiwana_domena/", $przeszukiwana_strona);
  76.                 $strona_z_linkami2 = str_replace("<a href=\"looping_images", "<a href=\"$przeszukiwana_domena/looping_images", $strona_z_linkami);
  77.  
  78.                 /**
  79.                  * Wyciągnięcie wszystkich linków do galerii
  80.                  */
  81.                 $dom = new DOMDocument;
  82.                 $dom->loadHTML($strona_z_linkami2);
  83.                 $hrefs = array();
  84.                 $ilosc_galerii = 20;
  85.                 $licznik = 1;
  86.  
  87.                 foreach ($dom->getElementsByTagName('a') as $node)
  88.                 {
  89.                     $name = $node->textContent;
  90.                     $link = $node->getAttribute('href');
  91.  
  92.                     /**
  93.                      * Po pliku viewer.aspx rozpoznaję że to link do galerii
  94.                      */
  95.                     if (strpos($link, 'viewer.aspx') !== false)
  96.                     {
  97.                         echo "Galeria: ".ltrim(rtrim($name)).".<br/>";
  98.  
  99.                         /**
  100.                          * Pobieram stronę poszczególnej galerii
  101.                          */
  102.                         $przeszukiwana_galeria = file_get_contents($link);
  103.                         $strona_z_linkami_do_zdjec = str_replace("<a href=\"../", "<a href=\"$przeszukiwana_domena/", $przeszukiwana_galeria);
  104.                         $strona_z_linkami_do_zdjec2 = str_replace("<a href=\"looping_images", "<a href=\"$przeszukiwana_domena/looping_images", $strona_z_linkami_do_zdjec);
  105.  
  106.                         $dom2 = new DOMDocument();
  107.  
  108.  
  109.                         $dom2->loadHTML($strona_z_linkami_do_zdjec2);
  110.                         $script_tags = $dom2->getElementsByTagName('script');
  111.                         $length = $script_tags->length;
  112.  
  113.                         for ($i = 0; $i < $length; $i++) {
  114.                             //$script_tags->item($i)->parentNode->removeChild($script_tags->item($i));
  115.                             $node = $script_tags->item($i);
  116.  
  117.                             /**
  118.                              * Przeszukuje JS z obrazkami gdzie deklarowana jest tablica myImage
  119.                              */
  120.                             if (strpos($node->nodeValue, 'myImage') !== false)
  121.                             {
  122.                                 $js_array = $node->nodeValue;
  123.  
  124.                                 // Konwersja kodu JS do JSON
  125.                                 // Usunięcie definicji tablicy JS
  126.                                 $js_array_1 = str_replace("var myImage = new Array(); ", "", $js_array);
  127.                                 // Usunięcie zmiennej myImage
  128.                                 $js_array_2 = str_replace("myImage", "", $js_array_1);
  129.                                 // Zamiana znaku '=' na ':'
  130.                                 $js_array_3 = str_replace("=", ":", $js_array_2);
  131.                                 // Zamiana nawiasów kwadratowych na cudzysłowy
  132.                                 $js_array_4 = str_replace("[", '"', $js_array_3);
  133.                                 $js_array_5 = str_replace("]", '"', $js_array_4);
  134.                                 // Zamiana apostrofu na cudzysłów
  135.                                 $js_array_6 = str_replace("'", '"', $js_array_5);
  136.                                 // Zamiana średników na przecinki
  137.                                 $js_array_7 = str_replace(';', ',', $js_array_6);
  138.                                 // Utworzenie stringu w standardzie JSON i usunięcie ostatniego przecinka
  139.                                 $json = str_replace(",}", "}", "{".ltrim(rtrim($js_array_7))."}");
  140.  
  141.                                 // Wyświetlam listę tablicy JS ściągniętej z poszczególnych galerii
  142.                                 $array = json_decode($json, true);
  143.                                 $n = count($array);
  144.                                 $link_galerii = str_replace("viewer.aspx", "", $link);
  145.                                 $galeria = ltrim(rtrim($name));
  146.                                 $licznik2 = 0;
  147.                                
  148.                                 for($j=0;$j<$n;$j++)
  149.                                 {
  150.                                     $link_do_zdjecia = $link_galerii.$array[$j];
  151.                                    
  152.                                     $query = "SET collation_connection = utf8_bin;
  153.                                        SET NAMES utf8;INSERT INTO zdjecia
  154.                                        (
  155.                                         nazwa_galerii
  156.                                         ,link_do_zdjecia
  157.                                         ,stempel
  158.                                        )
  159.                                        VALUES
  160.                                        (
  161.                                         :nazwa_galerii
  162.                                         ,:link_zdjecia
  163.                                         ,NOW()
  164.                                    )";
  165.                                    
  166.                                     $sql = $db->prepare($query);
  167.                                    
  168.                                     try
  169.                                     {
  170.                                         $sql->bindParam(':nazwa_galerii', $galeria_value, PDO::PARAM_STR, 100);
  171.                                         $sql->bindParam(':link_zdjecia', $link_value, PDO::PARAM_STR, 100);
  172.                                        
  173.                                         $galeria_value = utf8_encode($galeria);
  174.                                         $link_value = $link_do_zdjecia;
  175.                                        
  176.                                         if(!$sql->execute())
  177.                                         {
  178.                                             var_dump($sql->errorInfo());
  179.                                         }
  180.                                        
  181.                                         $licznik2 += 1;
  182.                                     }
  183.                                     catch(PDOException $e)
  184.                                     {
  185.                                         trigger_error('Error occured while trying to insert into the DB:' . $e->getMessage(), E_USER_ERROR);
  186.                                     }
  187.                                 }
  188.                                
  189.                                 echo "Dodano $licznik2 zdjęć do galerii $galeria.<br/>";
  190.                             }
  191.                         }
  192.  
  193.                         $licznik++;
  194.                     }
  195.  
  196.                     if($licznik > $ilosc_galerii)
  197.                     {
  198.                         break;
  199.                     }
  200.                 }
  201.             }
  202.             else
  203.             {
  204.                 $query = "SELECT id, nazwa_galerii, link_do_zdjecia FROM zdjecia";
  205.                
  206.                 $sth = $db->prepare($query);
  207.                 $sth->execute();
  208.                 $result = $sth->fetchAll();
  209.  
  210.                 ?>
  211.                 <script>
  212.                     // Włączenie sortowania w tabeli
  213.                     $(document).ready(function()
  214.                         {
  215.                             $("#myTable").tablesorter();
  216.                         }
  217.                     );
  218.                 </script>
  219.                 <table id="myTable" class="tablesorter">
  220.                     <thead>
  221.                     <tr>
  222.                         <th>ID</th>
  223.                         <th>Album</th>
  224.                         <th>Link do zdjecia</th>
  225.                     </tr>
  226.                     </thead>
  227.                     <tbody>
  228.                     <?php
  229.                         // Wyświetlenie wierszy
  230.                         $n = count($result);
  231.                         for($i=0;$i<$n;$i++)
  232.                         {
  233.                             $id = $result[$i]['id'];
  234.                             $album = $result[$i]['nazwa_galerii'];
  235.                             $link_do_zdj = $result[$i]['link_do_zdjecia'];
  236.                             echo "<tr><td>$id</td><td>$album</td><td>$link_do_zdj</td></tr>";
  237.                         }
  238.                     ?>
  239.                     </tbody>
  240.                 </table>
  241.                 <?php
  242.             }
  243.         ?>
  244.     </body>
  245. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement