Я получаю строки из базы данных, а затем использую строки для создания URL-адреса. Моя проблема в том, что некоторые из строк будут иметь символы, такие как общие специальные символы <> & {} *, но строка также может содержать строки. Как бы заменить пробелы черточками и полностью удалить и специальные символы из строк?
С str_replace
:
$str = str_replace(array(' ', '<', '>', '&', '{', '}', '*'), array('-'), $str);
Заметка:
Если замена имеет меньше значений, чем поиск , то для остальных значений замены используется пустая строка.
Храните только буквы и цифры в строке, используя preg_replace
:
$string = preg_replace('/[^a-zA-Z0-9-]/', '', $string);
Вы можете использовать str_replace
для замены пространства –
$string = str_replace (" ", "-", $string);
Посмотрите на следующую статью:
1) Замените диакритические знаки iconv
2) Замените не буквенные символы пустой строкой
3) Замените пробелы тире
4) Обрезать строку для тире символов (вы также можете обрезать строку перед манипуляциями)
Например, если вы используете кодировку UTF-8:
setlocale(LC_ALL, 'fr_CA.utf8'); $str = "%#dŝdèàâ.,ds#$4.sèdf;21df"; $str = iconv("UTF-8", "ASCII//TRANSLIT", $str); // "%#dsdeaa.,ds#$4.sedf;21df" $str = preg_replace("`[^\w]+`", "", $str); // "dsdeaad s4sedf21df" $str = str_replace(" ", "-", $str); // "dsdeaad-s4sedf21df" $str = trim($str, '-'); // "dsdeaad-s4sedf21df"
str_replace(' ','-',$string);
буквенно-цифровые:
$output = preg_replace("/[^A-Za-z0-9]/","",$input);
если вы хотите сохранить символы:
htmlspecialchars($string);