删除所有无效字符的PHP函数


PHP function for removing all invalid characters

我一直在尝试和寻找一个有效的解决方案,但似乎没有工作。

我正在做一个社交网站,用户可以在那里发帖。我想在文本输入数据库之前检查一下。

我想启用常规字符(a-zA-Z0-9) +一些utf8字符(áÁéÉíÍóÓöÖőŐúÚüÜűŰ)和一些其他字符(.,?!;)。等)

我一直在尝试,但似乎不工作:

preg_replace('/[^a-zA-Z0-9áÁéÉíÍóÓöÖőŐúÚüÜűŰ '.','?'!':';'-'+'<'>'%'~'€'$'[']'{'}'@'&'#'*'"'„'”'/]/', '', $string);
有人能帮我一下吗?

还有更简单的吗?我这样做的原因是我不想让用户向数据库发送非法字符或HTML标签。如果有人写这样的帖子就太糟糕了"blabla</div>".

如果使用文本区或输入值记录User条目,则可以使用str_replace()函数搜索字符串以替换非法字符。链接到php手册中的str_replace: http://php.net/manual/en/function.str-replace.php

代码示例:

    <?php
      $userInput = "Tex.t tha!t wil;l be te>sted that is inp?uted b;y user";
      //Following Array is all characters you deem unwanted
      $illegalChar = array(".", ",", "?", "!", ":", ";", "-", "+", "<", ">", "%", "~", "€", "$", "[", "]", "{", "}", "@", "&", "#", "*", "„");
      $charString = str_replace($illegalChar, "", $userInput);
      echo $charString;
      //Output is "Text that will be tested that is inputed by user"
    ?>