PHP-从数据库输入和更新中过滤不需要的元素

PHP-从数据库输入和更新中过滤不需要的元素,php,regex,preg-replace,Php,Regex,Preg Replace,我使用下面的方法去除数据库中插入或更新的所有不需要的字符 老实说,我只想允许以下字符,而不是常规字母和数字:',-,:。。。还有其他一些。几乎所有的字符都可以让人写出一个规则的短语 我走对了吗? preg_replace当前会从字符串中删除空格。我怎样才能让它停下来? 如何将想要的字符添加到preg_替换 public function strip($arr = array()) { if (!is_array($arr) || !count($arr)) { r

我使用下面的方法去除数据库中插入或更新的所有不需要的字符

老实说,我只想允许以下字符,而不是常规字母和数字:',-,:。。。还有其他一些。几乎所有的字符都可以让人写出一个规则的短语

我走对了吗? preg_replace当前会从字符串中删除空格。我怎样才能让它停下来? 如何将想要的字符添加到preg_替换

public function strip($arr = array())
{
    if (!is_array($arr) || !count($arr))
    {
        return array();
    }

    $returnArray = array();

    foreach($arr as $key => $val)
    {
        $val = $this->db->mysqli->real_escape_string($val);
        $val = strip_tags($val);
        //$val = preg_replace("/[^A-Za-z0-9]/", '', $val);

        $returnArray[$key] =  $val;

    }

    return $returnArray;

}
[^A-Za-z0-9\s] 将允许A-Z或A-Z中的字符或0-9中的数字和空格。 表示空白 如果要添加某些符号,只需使用\对其进行转义即可。如果它们在正则表达式中使用,如$,则如下[^\$]

如果您需要创建正则表达式的帮助,可以使用

如何:

$val = preg_replace("/[^A-Za-z0-9'):\s-]/", '', $val);
这将取代所有不是字母数字或“:-或空格的内容。您可以在角色类中添加其他想要的角色