2015-09-21 3 views
0

Я использую метод ниже, чтобы удалить ненужные символы из всего, что вставлено или обновлено в базе данных.PHP - Фильтровать нежелательные элементы из ввода и обновления базы данных

Чтобы быть честным, я только хочу, чтобы другие, чем обычные буквы и цифры следующие символы: ', -, ), : ... и несколько других. Довольно много персонажей, которые позволят кому-то писать правильную фразу.

Я иду на него в правильном направлении? preg_replace в настоящее время удаляет пробелы из строк. Как я могу заставить его остановиться? Как добавить нужные символы в preg_replace?

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; 

} 

ответ

0

[^A-Za-z0-9\s] позволит символы из A-Z или Z-или чисел от 0-9 и пробельных символов. в \s стенды для непечатаемых если вы хотите добавить определенные символы, вам просто нужно, чтобы избежать их с \, если они используются в регулярных выражениях вроде $ это будет выглядеть следующим образом [^\$]

Если вам нужна помощь в создании регулярных выражений вы можете использовать Regex101.com

0

Как насчет:

$val = preg_replace("/[^A-Za-z0-9'):\s-]/", '', $val); 

Это заменит все, что не является алфавитно-цифровой или '):- или пространств ничего. Вы можете добавить других символов в класс символов.

Смежные вопросы