PHP:检测文本中的无效字符

时间:2009-06-12 17:44:08

标签: php validation function character-encoding

我想用PHP解析用户输入。我需要一个函数来告诉我文本中是否有无效字符。我的草案如下:

<?php
function contains_invalid_characters($text) {
    for ($i = 0; $i < 3; $i++) {
        $text = html_entity_decode($text); // decode html entities
    } // loop is used for repeatedly html encoded entities
    $found = preg_match(...);
    return $found;
}
?>

如果输入文本包含无效字符,则该函数应返回TRUE,否则返回FALSE。有效字符应为:

a-z,A-Z,0-9,äöüß,空格,“!§$%&amp; /()= [] \?。:,; -_

你能告诉我如何编码吗? preg_match()是否适合此目的?同样重要的是,我可以稍后轻松扩展该功能,使其包含其他字符。

我希望你能帮助我。提前谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用正则表达式来执行此操作:

function contains_invalid_characters($text) {
    return (bool) preg_match('/[a-zA-Z0-9äöüß "!§$%&\/()=[\]\?.:,;\-_]/u', $text);
}

但请注意,您需要使用与要测试的文本相同的编码对该代码进行编码。我建议你使用UTF-8。