Ответов: 8 Просмотров: 9702
|
Здравствуйте. Для обработки HTML документа использую DOMDocument.
Мне нужно достать все ссылки из документа в массив.
делаю так.
PHP:
скопировать код в буфер обмена
$doc = new DOMDocument(); $doc->loadHTML($this->content); $url[] = @$doc->getElementsByTagName('a')->item( 1 )->getAttribute('href');
$this->content - это строка которая содержит HTML.
Но получаю вот что
PHP:
скопировать код в буфер обмена
Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Misplaced DOCTYPE declaration in Entity, line: 14 in Z:\home\localhost\www\SiteParser\SearchContent.php on line 65 Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseStartTag: misplaced <html> tag in Entity, line: 15 in Z:\home\localhost\www\SiteParser\SearchContent.php on line 65 Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseStartTag: misplaced <head> tag in Entity, line: 16 in Z:\home\localhost\www\SiteParser\SearchContent.php on line 65 Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseEntityRef: expecting ';' in Entity, line: 119 in Z:\home\localhost\www\SiteParser\SearchContent.php on line 65 Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseStartTag: misplaced <body> tag in Entity, line: 165 in Z:\home\localhost\www\SiteParser\SearchContent.php on line 65 Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Tag noindex invalid in Entity, line: 372 in Z:\home\localhost\www\SiteParser\SearchContent.php on line 65 Warning : DOMDocument ::loadHTML() [domdocument .loadhtml ]: Unexpected end tag : label in Entity , line : 426 in Z :\home\localhost\www\SiteParser\SearchContent .php on line 65 Warning : DOMDocument ::loadHTML() [domdocument .loadhtml ]: Unexpected end tag : label in Entity , line : 456 in Z :\home\localhost\www\SiteParser\SearchContent .php on line 65 Warning : DOMDocument ::loadHTML() [domdocument .loadhtml ]: Unexpected end tag : label in Entity , line : 486 in Z :\home\localhost\www\SiteParser\SearchContent .php on line 65 Warning : DOMDocument ::loadHTML() [domdocument .loadhtml ]: Unexpected end tag : label in Entity , line : 516 in Z :\home\localhost\www\SiteParser\SearchContent .php on line 65 array(1) { [0]=> string (6) "aktsii" }
Одну ссылку все -же он находит. array(1) { [0]=> string(6) "aktsii" }, Но что за куча ошибок и как их исправить?
(Добавление)
А хотя эти ошибки скорее всего из-за не валидного HTML. Ставлю @ и все норм.
Но как сделать что-бы найти все ссылки а не только первую? |