假设我有一个HTML文档
如何从文档中删除所有内容
我想删除HTML标记
我想删除任何特殊字符
我想删除除字母之外的所有内容
并提取文本
由于
答案 0 :(得分:4)
您可以使用strip_tags和preg_replace来完成此操作:
function clean($in)
{
// Remove HTML
$out = strip_tags($in);
// Filter all other characters
return preg_replace("/[^a-z]+/i", "", $out);
}
[^a-z]
将匹配除A到Z之外的任何字符,+
符号指定它应匹配此类字符的任何序列长度,而/i
- 修饰符指定它是一个案例不敏感的搜索。所有匹配的字符将替换为空字符串,只留下字符。
如果您想保留空格,可以使用[^a-z ]
,如果您想保留数字[^a-z0-9 ]
。这允许您将所有允许的字符列入白名单并丢弃其余字符。
答案 1 :(得分:2)
首先使用strip_tags()删除HTML,然后使用Emil H的正则表达式。
答案 2 :(得分:2)
前置
$in = preg_replace("/<[^>]*>/", "", $in);
到Emil H的解决方案,所以你的标签会被条纹化。否则,“&lt; p&gt; Hello World&lt; / p&gt;”将显示为“pHelloWorldp”