如何使用PHP检索HTML标记中的干净文本?
我有一个表单,它接受HTML数据,但我们只需要它们各自的文本,而不需要其他任何东西。有什么特别的方法可以在PHP中从HTML中提取文本吗?使用。您可以使用解析HTML并提取所需内容如何使用PHP检索HTML标记中的干净文本?,php,html,Php,Html,我有一个表单,它接受HTML数据,但我们只需要它们各自的文本,而不需要其他任何东西。有什么特别的方法可以在PHP中从HTML中提取文本吗?使用。您可以使用解析HTML并提取所需内容 $doc = new DOMDocument(); $doc->loadHTMLFile("data.html"); $metaTags = $doc->getElementsByTagName('meta'); // Process $metaTags 当然可以做到: 只需查看此函数并根据需要使用它:
$doc = new DOMDocument();
$doc->loadHTMLFile("data.html");
$metaTags = $doc->getElementsByTagName('meta');
// Process $metaTags
当然可以做到:
只需查看此函数并根据需要使用它:
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);'",
"'ß'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);
}
函数html2txt($document)
{
$search=array(
“']*?>*?*?*?”,//去掉JavaScript代码
“'si',//去掉HTML标记
“([\r\n])[\s]+”,//去掉空白
"'@@'",
“&(quot|#34|#034|#x22);'i”,//替换HTML实体
“&(amp|#38|#038|#x26);'i”,//添加了十六进制值
“&(lt|60|060|x3c);“我”,
“&(gt|62|062|x3e);“我”,
“&(nbsp|160|xa0);“我”,
“&(iexcl|161);“i”,
“&(cent|162);“i”,
“&(英镑|#163);“我”,
“&(复印件169);“我”,
“&(reg|174);“i”,
“&(deg|176);“i”,
“&(39 | 039 | x27);”,
“&(欧元|#8364);‘i’,//欧洲
“&a(uml | uml);”,//德语
“&o(uml | uml);”,
“&u(uml | uml);”,
“&A(uml | uml);”,
“&O(uml | uml);”,
“&U(uml | uml);”,
“ß;'i”,
);
$replace=数组(“”,
"",
" ",
"\"",
"&",
"",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
chr(174),
chr(176),
chr(39),
chr(128),
"ä",
"ö",
"ü",
"�",
"�",
"�",
"�",
);
$text=preg_replace($search,$replace,$document);
返回修剪($text);
}
这对我来说并不完美,这里有一个例子:$htmlVar=“div”㵙㶋㶋㶋㶋㶋㶋㶋㶋㶋㶋<style=“font size:small;在6月6日的各各镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇镇و;“ ;/div style=“文本对齐:居中;“100921/分区”;echo(strip_标签($htmlVar));注意:由于空间不足,我删除了一些html代码。这不是html代码。尝试echo(strip_标签(htmlspecialchars_decode($htmlVar));