хорошо у меня есть некоторая строка
'Hello^<php>World&*124><
i ju*st press enteR'
как я возвращаю его (функция лучше?)
'Hello World123
i just press enter'
позволить
как я делаю это с regex? я должен использовать regex? существует ли иначе?
Спасибо
Adam Ramadhan
Вы можете сделать это:
function removeBad($str)
{
return preg_replace("/[^a-zA-Z0-9_ (\n|\r\n)]+/", "", $str);
}
Это удалит все, кроме алфавита, цифр, пробелов и новой строки
Если вы также хотите удалить любые теги, такие как
в своем тексте вы можете сделать:
function removeBad($str)
{
$str = strip_tags($str);
return preg_replace("/[^a-zA-Z0-9_ (\n|\r\n)]+/", "", $str);
}
Использование:
$str = removeBad('Hello^<php>World&*124><');
echo $str;
Результат:
HelloWorld124
.
$str = removeBad('i ju*st press EnteR');
echo $str;
Результат:
i just press EnteR
Подстановка Regex может сделать это за вас. Думаю, вам нужно два. Первый, который удалит все, что находится между символами <и>. Второй - для удаления любого символа, который НЕ входит в разрешенный набор символов. Это самый безопасный способ сделать это.