Как я могу извлечь из переменной только текст, если она содержит структуру HTML в PHP?

У меня есть строки HTML, хранящиеся в базе данных, и я хочу извлечь только текстовое содержимое, удалив все теги HTML. Каков наилучший способ сделать это в PHP?

Я хочу извлечь простой текст. Как я могу этого добиться?

<?php
    require_once 'includes/connection.inc.php';

    $fetch_data = "SELECT * FROM emails";
    $fetch_data_conn = mysqli_query($connection, $fetch_data);

    while ($row = mysqli_fetch_assoc($fetch_data_conn)) {
        $content = $row["content"];

        $textContent = strip_tags($content);
    
        echo $textContent;
    }
    ?>

Текущий выход:

Как я могу извлечь из переменной только текст, если она содержит структуру HTML в PHP?

Посмотрите stackoverflow.com/questions/26343641/…

JulesUK 13.07.2024 12:48
php.net/manual/en/function.strip-tags.php
Arun A S 13.07.2024 12:49

Я пытался использовать функцию strig_tags(), но она не дала желаемого результата.

Muhammad Aleem 13.07.2024 13:35

Это произойдет потому, что, судя по содержанию опубликованного вами изображения, оно не совсем HTML.

ADyson 13.07.2024 13:54

Изображение, которое я опубликовал, выводится после использования Strip_tags(). Я нашел решение и опубликовал его в ответе.

Muhammad Aleem 13.07.2024 14:19

Точно, и в этом выводе есть CSS. Я видел ответ, хотя он наберет больше голосов и будет более полезен для других, если вы добавите некоторые пояснения по этому поводу. См. также Как ответить. Спасибо

ADyson 14.07.2024 14:37
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
6
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
<?php
    require_once 'includes/connection.inc.php';

    function removeElementsByTagName($tagName, $document)
    {
        $nodeList = $document->getElementsByTagName($tagName);
        for ($nodeIdx = $nodeList->length; --$nodeIdx >= 0;) {
            $node = $nodeList->item($nodeIdx);
            $node->parentNode->removeChild($node);
        }
    }

    $fetch_data = "SELECT * FROM emails";
    $fetch_data_conn = mysqli_query($connection, $fetch_data);

    while ($row = mysqli_fetch_assoc($fetch_data_conn)) {
        $content = $row["content"];

        $doc = new DOMDocument();
        libxml_use_internal_errors(true);
        $doc->loadHTML($content);
        libxml_clear_errors();
    
        removeElementsByTagName('script', $doc);
        removeElementsByTagName('style', $doc);
        removeElementsByTagName('link', $doc);

        $textContent = strip_tags($doc->saveHTML());
    
        echo $textContent;
        echo "<hr>";
    }
    ?>

Другие вопросы по теме