如何使用PHP检索HTML标记内的干净文本?

时间:2010-01-23 18:19:12

标签: php html

我有一个接受HTML数据的表单,但我们只需要各自的文本,而不是其他任何文本。有没有什么特别的方法可以从PHP中提取HTML文本?

3 个答案:

答案 0 :(得分:5)

使用strip_tags()

答案 1 :(得分:2)

当然可以做到:

只需查看此功能并按您的喜好使用它:

function html2txt ($document)
{
    $search = array (
            "'<script[^>]*?>.*?</script>'si", // Strip out JavaScript code
            "'<[\/\!]*?[^<>]*?>'si",          // Strip out HTML tags
            "'([\r\n])[\s]+'",                // Strip out white space
            "'@<![\s\S]*?�[ \t\n\r]*>@'",   
            "'&(quot|#34|#034|#x22);'i",      // Replace HTML entities
            "'&(amp|#38|#038|#x26);'i",       // Added hexadecimal values
            "'&(lt|#60|#060|#x3c);'i",
            "'&(gt|#62|#062|#x3e);'i",
            "'&(nbsp|#160|#xa0);'i",
            "'&(iexcl|#161);'i",
            "'&(cent|#162);'i",
            "'&(pound|#163);'i",
            "'&(copy|#169);'i",
            "'&(reg|#174);'i",
            "'&(deg|#176);'i",
            "'&(#39|#039|#x27);'",
            "'&(euro|#8364);'i",         // Europe
            "'&a(uml|UML);'",            // German
            "'&o(uml|UML);'",
            "'&u(uml|UML);'",
            "'&A(uml|UML);'",
            "'&O(uml|UML);'",
            "'&U(uml|UML);'",
            "'&szlig;'i",
            );
    $replace = array (    "",
                "",
                " ",
                "\"",
                "&",
                "<",
                ">",
                " ",
                chr(161),
                chr(162),
                chr(163),
                chr(169),
                chr(174),
                chr(176),
                chr(39),
                chr(128),
                "ä",
                "ö",
                "ü",
                "�",
                "�",
                "�",
                "�",
            );

    $text = preg_replace($search, $replace, $document);

    return trim ($text);
}

答案 2 :(得分:1)

您可以使用DOMDocument::loadHTMLFile解析HTML并提取您需要的内容。

$doc = new DOMDocument();
$doc->loadHTMLFile("data.html");
$metaTags = $doc->getElementsByTagName('meta');
// Process $metaTags