如何通过删除PHP中不是字母的任何内容来清理字符串

时间:2009-08-05 05:28:57

标签: php html

假设我有一个HTML文档

如何从文档中删除所有内容

我想删除HTML标记

我想删除任何特殊字符

我想删除除字母之外的所有内容

并提取文本

由于

3 个答案:

答案 0 :(得分:4)

您可以使用strip_tagspreg_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”