Удалить из строки запрещенные символы
Есть ли в 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;