Удалить из строки запрещенные символы

Есть ли в PHP функция, которая удаляет из строки все символы, запрещенные в имени файла?


Ответы (2 шт):

Автор решения: mepihindeveloper

Лучше всего использовать для решения задачи регулярные выражения. Список запрещенных символов, которые я использую: \/:*?"<>|+%!@.

В PHP использовать метод preg_replace:

$string = 'some'
$forbidden = '\/:*?"<>|+%!@';
$stringWithoutForbiddenCharacters = preg_replace("/[${forbidden}]/", '', $string); 
→ Ссылка
Автор решения: CryEngine V - FlowGraph

И проще и лучше, чем другой вариант. Писать список запрещенных символов, это, конечно, сильно..вместо того, чтобы просто разрешить допустимые. В данном случае буквы a-z, а-я, точка и цифры 0-9 + регистры букв. В результате будет:

teTt12.png

$string = '`#@!&$&[email protected]';
$result = preg_replace('/[^ a-zа-я\d.]/ui', '', $string );
echo $result;
→ Ссылка