Как получить текст между тегами в php?

Пользователь

от otha_marks , в категории: PHP , 2 года назад

Как получить текст между тегами в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dmitrypro77 , 2 года назад

@otha_marks Как вариант можно использовать DOMDocument объект чтобы получить текст между HTML тегами в PHP, ниже пример получения текста из h1 тега:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php

$html = "<div class='container'><h1>Dropcode</h1><p>text block</p></div>";

$dom = new DOMDocument('1.0', 'utf-8');
// Загрузить HTML в объект
$dom->loadHTML($html);

// Найти h1 тег
$title = $dom->getElementsByTagName('h1');

// Вывод: Dropcode
echo $title->item(0)->textContent;


Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от abel , год назад

@otha_marks 

Чтобы получить текст между тегами в PHP, вы можете использовать функции для работы с строками или специальные функции для работы с HTML-кодом, такие как strip_tags или DOMDocument.


Вот несколько примеров:

  1. Использование функций для работы со строками:
1
2
3
4
5
$html = "<div>Привет, мир!</div>";
$start = strpos($html, ">") + 1;
$length = strrpos($html, "<") - $start;
$text = substr($html, $start, $length);
echo $text; // Выводит "Привет, мир!"


  1. Использование функции strip_tags:
1
2
3
$html = "<div>Привет, мир!</div>";
$text = strip_tags($html);
echo $text; // Выводит "Привет, мир!"


  1. Использование класса DOMDocument:
1
2
3
4
5
$html = "<div>Привет, мир!</div>";
$dom = new DOMDocument();
$dom->loadHTML($html);
$text = $dom->getElementsByTagName("div")->item(0)->nodeValue;
echo $text; // Выводит "Привет, мир!"


Обратите внимание, что в последнем примере мы используем класс DOMDocument, который требует больше кода, но также более надежный и гибкий при работе с большим количеством HTML-кода.