document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. class Dom{
  2.  
  3. private $__SOURCE_TEXT;
  4. private $__DOM;
  5. private $__ENABLE_COMMENTS = false;
  6. private $__ESCAPE_SYMBOLS = ["\\n"," ", "\\t", "\\e", "\\f", "\\v", "\\r"];
  7. private $__MANDATORY_OPEN_ELEMENTS= [false, false, false]; //html, head, body
  8. private $__MANDATORY_CLOSE_ELEMENTS= [false, false, false]; //html, head, body
  9.  
  10.  
  11.     function __construct($url, $enable_comments = false){
  12.         if($enable_comments){ //Если функция отображения комментариев включена
  13.             $this->__ENABLE_COMMENTS = true;
  14.         }
  15.         if(preg_match(\'/http(s)*:\\/\\//i\', $url)){ //Если это ссылка
  16.             $this->sourceText = $this->query($url); //Берем весь html через функцию query()
  17.         }else{//Если это локальный файл
  18.             $this->sourceText = file_get_contents($url); //Просто берем все содержимое из него
  19.         }
  20.         return true;
  21.     }
  22.  
  23.     public function dump(string $filename = \'\') { //Функция вывода конвертированого исходного документа. Может понадобиться при отладке. Также вывод этой функции можно записать в файл.
  24.         if($filename == \'\') return htmlspecialchars($this->sourceText);
  25.         $dump = fopen($filename, \'w+\');
  26.         fwrite($dump, $this->sourceText);
  27.         return true;
  28.     }
  29.  
  30.     public function read() : string{ //Функция для вывода содержимого документа без конвертации.
  31.         return $this->sourceText;
  32.     }
  33.  
  34.     private function query(string $url): string { //Функция для отправки запросов
  35.     $curlSession = curl_init();
  36.  
  37.     curl_setopt($curlSession, CURLOPT_HEADER, 0);
  38.     curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, 1);
  39.     curl_setopt($curlSession, CURLOPT_URL, $url);
  40.     curl_setopt($curlSession, CURLOPT_USERAGENT, \'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13\');
  41.     curl_setopt($curlSession, CURLOPT_FOLLOWLOCATION, TRUE);
  42.     curl_setopt($curlSession, CURLOPT_HTTPHEADER, array("Content-Type:multipart/form-data"));
  43.  
  44.     $returningData = curl_exec($curlSession);
  45.     curl_close($curlSession);
  46.  
  47.     return $returningData;
  48.     }
  49. }
');