PHP函数用于删除所有无效字符

时间:2016-08-30 13:44:16

标签: php

我一直在努力寻找可行的解决方案,但似乎没有任何效果......

我正在建立一个社交网站,用户可以发布。我想在进入数据库之前检查文本。

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

我一直在尝试,但它似乎不起作用:

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

有人可以帮助我吗?

有什么比这更容易了吗?我这样做的原因是因为我不想让用户使用非法字符或HTML标签来垃圾邮件数据库..如果有人写了这样的帖子"blabla</div>".

1 个答案:

答案 0 :(得分:0)

如果使用textarea或输入值来记录用户条目,则可以使用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"
    ?>