Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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;
- }
- }
Add Comment
Please, Sign In to add comment