Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>http://www.watchthedeer.com - Galerie</title>
- <script type="text/javascript" src="http://tablesorter.com/jquery-latest.js"></script>
- <script type="text/javascript" src="http://tablesorter.com/__jquery.tablesorter.min.js"></script>
- </head>
- <body>
- <?php
- /**
- * Zmiana ustawień, wyświetlanie tylko błędów krytycznych bez warningów
- */
- error_reporting(E_ERROR);
- /**
- * Ustawienie przeszukiwania
- */
- $przeszukiwana_domena = "http://www.watchthedeer.com";
- $przeszukiwana_strona = file_get_contents("$przeszukiwana_domena/photos.aspx");
- /**
- * Ustawienia połączenia SQL
- */
- $host = "localhost";
- $user = "test_galeria";
- $pass = "Nt85UDWznx4Y";
- $db = "test_galeria";
- /**
- * Zapytanie do utworzenia tabeli:
- *
- * CREATE TABLE zdjecia (
- * id int NOT NULL AUTO_INCREMENT,
- * nazwa_galerii varchar(255) DEFAULT NULL,
- * link_do_zdjecia text NOT NULL,
- * stempel timestamp NOT NULL,
- * PRIMARY KEY (id)
- * )
- * ENGINE = INNODB;
- */
- /**
- * Wybór akcji wedle parametru $_GET['action'] adresu URL
- */
- $akcja = filter_input(INPUT_GET, 'action');
- /**
- * Łączenie do bazy danych
- */
- try
- {
- $db = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
- }
- catch (PDOException $e)
- {
- print "Błąd połączenia z bazą!: " . $e->getMessage() . "<br/>";
- die();
- }
- /**
- * Generowanie i zapis do bazy zdjęć
- */
- if($akcja == 'generate')
- {
- /**
- * Czyszczenie tabeli zdjęć
- */
- $query = "TRUNCATE TABLE zdjecia";
- $sql = $db->exec($query);
- /**
- * Dodanie do linków wartości domeny
- */
- $strona_z_linkami = str_replace("<a href=\"../", "<a href=\"$przeszukiwana_domena/", $przeszukiwana_strona);
- $strona_z_linkami2 = str_replace("<a href=\"looping_images", "<a href=\"$przeszukiwana_domena/looping_images", $strona_z_linkami);
- /**
- * Wyciągnięcie wszystkich linków do galerii
- */
- $dom = new DOMDocument;
- $dom->loadHTML($strona_z_linkami2);
- $hrefs = array();
- $ilosc_galerii = 20;
- $licznik = 1;
- foreach ($dom->getElementsByTagName('a') as $node)
- {
- $name = $node->textContent;
- $link = $node->getAttribute('href');
- /**
- * Po pliku viewer.aspx rozpoznaję że to link do galerii
- */
- if (strpos($link, 'viewer.aspx') !== false)
- {
- echo "Galeria: ".ltrim(rtrim($name)).".<br/>";
- /**
- * Pobieram stronę poszczególnej galerii
- */
- $przeszukiwana_galeria = file_get_contents($link);
- $strona_z_linkami_do_zdjec = str_replace("<a href=\"../", "<a href=\"$przeszukiwana_domena/", $przeszukiwana_galeria);
- $strona_z_linkami_do_zdjec2 = str_replace("<a href=\"looping_images", "<a href=\"$przeszukiwana_domena/looping_images", $strona_z_linkami_do_zdjec);
- $dom2 = new DOMDocument();
- $dom2->loadHTML($strona_z_linkami_do_zdjec2);
- $script_tags = $dom2->getElementsByTagName('script');
- $length = $script_tags->length;
- for ($i = 0; $i < $length; $i++) {
- //$script_tags->item($i)->parentNode->removeChild($script_tags->item($i));
- $node = $script_tags->item($i);
- /**
- * Przeszukuje JS z obrazkami gdzie deklarowana jest tablica myImage
- */
- if (strpos($node->nodeValue, 'myImage') !== false)
- {
- $js_array = $node->nodeValue;
- // Konwersja kodu JS do JSON
- // Usunięcie definicji tablicy JS
- $js_array_1 = str_replace("var myImage = new Array(); ", "", $js_array);
- // Usunięcie zmiennej myImage
- $js_array_2 = str_replace("myImage", "", $js_array_1);
- // Zamiana znaku '=' na ':'
- $js_array_3 = str_replace("=", ":", $js_array_2);
- // Zamiana nawiasów kwadratowych na cudzysłowy
- $js_array_4 = str_replace("[", '"', $js_array_3);
- $js_array_5 = str_replace("]", '"', $js_array_4);
- // Zamiana apostrofu na cudzysłów
- $js_array_6 = str_replace("'", '"', $js_array_5);
- // Zamiana średników na przecinki
- $js_array_7 = str_replace(';', ',', $js_array_6);
- // Utworzenie stringu w standardzie JSON i usunięcie ostatniego przecinka
- $json = str_replace(",}", "}", "{".ltrim(rtrim($js_array_7))."}");
- // Wyświetlam listę tablicy JS ściągniętej z poszczególnych galerii
- $array = json_decode($json, true);
- $n = count($array);
- $link_galerii = str_replace("viewer.aspx", "", $link);
- $galeria = ltrim(rtrim($name));
- $licznik2 = 0;
- for($j=0;$j<$n;$j++)
- {
- $link_do_zdjecia = $link_galerii.$array[$j];
- $query = "SET collation_connection = utf8_bin;
- SET NAMES utf8;INSERT INTO zdjecia
- (
- nazwa_galerii
- ,link_do_zdjecia
- ,stempel
- )
- VALUES
- (
- :nazwa_galerii
- ,:link_zdjecia
- ,NOW()
- )";
- $sql = $db->prepare($query);
- try
- {
- $sql->bindParam(':nazwa_galerii', $galeria_value, PDO::PARAM_STR, 100);
- $sql->bindParam(':link_zdjecia', $link_value, PDO::PARAM_STR, 100);
- $galeria_value = utf8_encode($galeria);
- $link_value = $link_do_zdjecia;
- if(!$sql->execute())
- {
- var_dump($sql->errorInfo());
- }
- $licznik2 += 1;
- }
- catch(PDOException $e)
- {
- trigger_error('Error occured while trying to insert into the DB:' . $e->getMessage(), E_USER_ERROR);
- }
- }
- echo "Dodano $licznik2 zdjęć do galerii $galeria.<br/>";
- }
- }
- $licznik++;
- }
- if($licznik > $ilosc_galerii)
- {
- break;
- }
- }
- }
- else
- {
- $query = "SELECT id, nazwa_galerii, link_do_zdjecia FROM zdjecia";
- $sth = $db->prepare($query);
- $sth->execute();
- $result = $sth->fetchAll();
- ?>
- <script>
- // Włączenie sortowania w tabeli
- $(document).ready(function()
- {
- $("#myTable").tablesorter();
- }
- );
- </script>
- <table id="myTable" class="tablesorter">
- <thead>
- <tr>
- <th>ID</th>
- <th>Album</th>
- <th>Link do zdjecia</th>
- </tr>
- </thead>
- <tbody>
- <?php
- // Wyświetlenie wierszy
- $n = count($result);
- for($i=0;$i<$n;$i++)
- {
- $id = $result[$i]['id'];
- $album = $result[$i]['nazwa_galerii'];
- $link_do_zdj = $result[$i]['link_do_zdjecia'];
- echo "<tr><td>$id</td><td>$album</td><td>$link_do_zdj</td></tr>";
- }
- ?>
- </tbody>
- </table>
- <?php
- }
- ?>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement