У меня есть строки 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;
}
?>
Текущий выход:
Я пытался использовать функцию strig_tags(), но она не дала желаемого результата.
Это произойдет потому, что, судя по содержанию опубликованного вами изображения, оно не совсем HTML.
Изображение, которое я опубликовал, выводится после использования Strip_tags(). Я нашел решение и опубликовал его в ответе.
Точно, и в этом выводе есть CSS. Я видел ответ, хотя он наберет больше голосов и будет более полезен для других, если вы добавите некоторые пояснения по этому поводу. См. также Как ответить. Спасибо
<?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>";
}
?>
Ваш ответ можно улучшить, добавив дополнительную вспомогательную информацию. Пожалуйста, отредактируйте , добавив дополнительную информацию, например цитаты или документацию, чтобы другие могли подтвердить правильность вашего ответа. Более подробную информацию о том, как писать хорошие ответы, вы можете найти в справочном центре.
Посмотрите stackoverflow.com/questions/26343641/…