我想用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()是否适合此目的?同样重要的是,我可以稍后轻松扩展该功能,使其包含其他字符。
我希望你能帮助我。提前谢谢!
答案 0 :(得分:3)
您可以使用正则表达式来执行此操作:
function contains_invalid_characters($text) {
return (bool) preg_match('/[a-zA-Z0-9äöüß "!§$%&\/()=[\]\?.:,;\-_]/u', $text);
}
但请注意,您需要使用与要测试的文本相同的编码对该代码进行编码。我建议你使用UTF-8。