class Dom{
private $__SOURCE_TEXT;
private $__DOM;
private $__ENABLE_COMMENTS = false;
private $__ESCAPE_SYMBOLS = ["\\n"," ", "\\t", "\\e", "\\f", "\\v", "\\r"];
private $__MANDATORY_OPEN_ELEMENTS= [false, false, false]; //html, head, body
private $__MANDATORY_CLOSE_ELEMENTS= [false, false, false]; //html, head, body
function __construct($url, $enable_comments = false){
if($enable_comments){ //Если функция отображения комментариев включена
$this->__ENABLE_COMMENTS = true;
}
if(preg_match(\'/http(s)*:\\/\\//i\', $url)){ //Если это ссылка
$this->sourceText = $this->query($url); //Берем весь html через функцию query()
}else{//Если это локальный файл
$this->sourceText = file_get_contents($url); //Просто берем все содержимое из него
}
return true;
}
public function dump(string $filename = \'\') { //Функция вывода конвертированого исходного документа. Может понадобиться при отладке. Также вывод этой функции можно записать в файл.
if($filename == \'\') return htmlspecialchars($this->sourceText);
$dump = fopen($filename, \'w+\');
fwrite($dump, $this->sourceText);
return true;
}
public function read() : string{ //Функция для вывода содержимого документа без конвертации.
return $this->sourceText;
}
private function query(string $url): string { //Функция для отправки запросов
$curlSession = curl_init();
curl_setopt($curlSession, CURLOPT_HEADER, 0);
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlSession, CURLOPT_URL, $url);
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\');
curl_setopt($curlSession, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curlSession, CURLOPT_HTTPHEADER, array("Content-Type:multipart/form-data"));
$returningData = curl_exec($curlSession);
curl_close($curlSession);
return $returningData;
}
}