DOMDocument атрибута класса для получения внутреннего HTML файла html.

pash1987

Пользователь
Регистрация
27.11.12
Сообщения
2
Реакции
0
Баллы
1
Как использовать класс атрибута, чтобы получить внутренний HTML-файл по заданному URL-адресу и HTML-файлу? Я искал в Интернете четкое объяснение.

Где я ошибаюсь (я не привык к «->» и «=>», поскольку не знаю, что они представляют или делают):
Код:
<?php
function walkDOMForTagAndClass($element, $tagName, $class, $callback) { if ($element->nodeType !== 1) return false; // invalid element $tagName = strtoupper($tagName); if ($walk = $element->firstChild) do { if ( ($walk->nodeType == 1) && (strtoupper($walk->nodeName) == $tagName) && ($walk->attributes->getNamedItem('class') == $class) ) $callback($walk); } while ( $walk = $walk->firstChild || $walk->nextSibling || ( $walk->parentNode == $element ? false : $walk->parentNode.nextSibling ) );
}
$file = "[URL='https://wmlogs.com/yti/SL11LSlZodHRwczovL2JsdWVsZXR0ZXJiaWJsZS5vcmcvbGFuZy9sZXhpY29uL2xleGljb24uY2ZtP1N0cm9uZ3M9SDEmdDmED']https://www.blueletterbible.org/lang/lexicon/lexicon.cfm?Strongs=H1&t=KJV[/URL]";
$doc = new DOMDocument();
$doc->loadHTMLFile($file);
walkDOMForTagAndClass( $doc, 'div', 'nocrumbs', function($file) { }
);

$xpath = new DOMXPath($doc);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) { $href = $hrefs->item($i); $url = $href->getAttribute('href'); $href->removeAttribute('target'); $href->setAttribute("target", "_blank"); $newURL=$url."/newurl"; $href->removeAttribute('href'); $href->setAttribute("href", $newURL);
}
$file=$doc->saveHTML();
echo $file;
?>
Код (разметка):
DOMDocument атрибута класса для получения внутреннего HTML файла html.
 

Ninja1

Пользователь
Регистрация
19.06.14
Сообщения
4
Реакции
0
Баллы
1
Вероятно, вам не удалось найти ответ на свой вопрос в Google, потому что вы вообще не понимаете, о чем спрашивать. При понимании HTML и базовом понимании PHP использовать DomDocument легко. Однако, если вы не имеете ни малейшего представления о том, как использовать объекты PHP, методы и свойства доступа, это будет немного утомительно. Вы даже удосужились поискать «Что такое -> в php»? Это было бы хорошим началом, чтобы понять, что происходит.

Трудно ответить на ваш вопрос, поскольку вы даже не уверены в том, о чем спрашиваете, или в коде, который публикуете. Итак, я предполагаю, что вы хотите использовать DomDocument для извлечения 1. URL-адреса и 2. связанного текста между тегами. Верно? Вот пример того, как извлечь все ссылки из Craigslist:

Код:
<?php
$url = "[URL='https://wmlogs.com/yti/cv55vcmdodHRwOi8vY3JhaWdzbGlzdCzlG']http://www.craigslist.org[/URL]";
$htmlParser = new domDocument();
$htmlParser->preserveWhiteSpace = false;
@$htmlParser->loadHTML(file_get_contents($url));
foreach ($htmlParser->getElementsByTagName('a') as $aTag)
{ $linkSrc = $aTag->getAttribute('src'); $linkText = $aTag->childNodes->item(0)->nodeValue; echo "<a href=\"" . $linkSrc . "\">" . $linkText . "</a>\n";
}
Код (разметка):
 

Kytsor

Пользователь
Регистрация
02.12.11
Сообщения
2
Реакции
0
Баллы
1
Спасибо за совет. Я спрашивал про -> и => в новом посте.

Мои навыки кодирования довольно базовые: циклы for, операторы if и regex/preg_match_all. Я не привык к таким функциям, и DOMDocument для меня совершенно новый. Но я хочу извлечь определенные вещи со страниц Стронга и вставить их в свою таблицу БД. Самое сложное — найти новые цифры Стронга в разделе определений, а также подобрать эти определения. А затем повторите цикл, просматривая числа Стронга, найденные в их определениях, до тех пор, пока не останется числа Стронга, которое можно было бы подобрать. В этом случае я хочу перейти на следующую страницу Стронга. Номера Стронга — от H0 до H6090.
 
Сверху Снизу