Получить текст с помощью PHP Simple HTML DOM Parser - PullRequest
0 голосов
/ 24 марта 2012

Я использую PHP Simple HTML DOM Parser для получения текста с веб-страницы. Страница, которой я должен манипулировать, выглядит примерно так:

<html>
<head>
<title>title</title>
<body>
<div id="content">
<h1>HELLO</h1>
Hello, world!
</div>
</body>
</html>

Мне нужно получить элемент h1 и текст без тегов. чтобы получить h1 я использую этот код:

$html = file_get_html("remote_page.html");
foreach($html->find('#content') as $text){
echo "H1: ".$text->find('h1', 0)->plaintext;
}

Но другой текст? Я также пробовал это в foreach, но я получаю полный текст:

$text->plaintext;

но он также вернул тег H1 ...

Ответы [ 3 ]

0 голосов
/ 14 декабря 2016

Вы можете просто удалить HTML-теги, используя strip_tags

<?php
strip_tags($input, '<br>');
?>
0 голосов
/ 14 декабря 2016

Используйте теги strip, как указывал @Peachy. Однако передача ему второго аргумента <br> означает, что строка будет игнорировать теги <br>, что не нужно. В вашем случае

<?php
    strip_tags($text);
?>

будет работать так, как вы хотите, учитывая, что вы выбираете контент только в идентификаторе content.

0 голосов
/ 24 марта 2012

Похоже, $text->find('text',2); получает то, что вы ищете, однако я не уверен, насколько хорошо это будет работать, когда количество текстовых узлов неизвестно.Я буду продолжать искать.

...