2016-08-30 4 views
0

Я пытался и поиска рабочего раствора, но ничего не помогало ..PHP функция для удаления всех недопустимых символов

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

Я хотел бы сделать обычные символы включены (A-Za-Z0-9) + некоторые utf8 символы (áÁéÉíÍóÓöÖőŐúÚüÜűŰ) и некоторые другие символы (,;.?!. И т.д.)

Я но он, похоже, не работает:

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

Может ли кто-нибудь помочь мне?

Есть ли что-нибудь проще? Причина, по которой я делаю это, - это то, что я не хочу, чтобы пользователи спамевали базу данных с незаконными символами или HTML-тегами. Было бы так плохо, если бы кто-то написал сообщение вроде этого "blabla</div>".

+2

Что такое * "незаконный характер" *? И почему бы просто не использовать utf-8, а применить 'strip_tags()'? – CD001

+1

Может быть, Duplicate? - http://stackoverflow.com/questions/1401317/remove-non-utf8-characters-from-string –

+0

Вы говорите, что не хотите, чтобы пользователи отправляли HTML-теги, но все символы, необходимые для их написания, перечисленные в вашем регулярном выражении. – iainn

ответ

0

Если вы используют текстовое поле или входное значение для записи записей пользователя, вы можете использовать функцию str_replace() для поиска по строке символов для замены недопустимых символов. Ссылка на str_replace в PHP Manual: 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" 
    ?> 
+0

Вы в основном делаете массив нежелательных символов, а затем используете str_replace, чтобы стереть их. если вы хотите проверить форму html, связанную с текстовой областью или входным значением, введите $ userInput = <имя поля html> –

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