<?php
class Parser{
private $doc; /*Переменная, в которой будет храниться DOM*/
private $linksHref = array();
private $linkValue = array();
function __construct($file){
$this->doc = new DOMDocument();/*Создаем ДОМ*/
$this->doc->loadHTMLFile($file);/*Загружаем ХТМЛ*/
$this->getElementsFromElementById();/*Вызов функции-обработчика*/
}
private function getElementsFromElementById(){
$ul = $this->doc->getElementById('blogroll');/*Ищем данные елемента через его ИД*/
$allLinks = $ul->getElementsByTagName('a'); /*Ищем в найденом списке все теги А*/
$this->operationsOverLinks($allLinks); /*Вызов ф. - операции над ссылками*/
}
private function operationsOverLinks($links){
if(is_object($links)){/*Если переменная объект, то идем дальше*/
foreach ($links as $link){
if($link->hasAttribute('href')){
$this->linksHref[] = $link->getAttribute('href'); /*Получаем значение параметра href тега a*/
$this->linkValue[] = iconv("UTF-8","Windows-1251",$link->nodeValue); /*Значение ссылки в cp1251*/
}else{
echo "<script>alert('Doesn`t has attribute or smth else');</script>";
}
}
}else{
echo "<script>alert('$links isn`t object!!');</script>";
}
}
public function show(){ /*Функция вывода массивов со значениями*/
echo "<pre>";
print_r($this->linksHref);
echo "<pre>";
echo "<pre>";
print_r($this->linkValue);
echo "<pre>";
}
}
$parser = new Parser('some.html');
$parser->show();
/*Класс создает массивы значений для каждой ссылки. Дальше уже вам думать, что с ними делать, как их использовать. */
?> |