X
Меню сайта
GreenB
Войдите с помощью одной из соцсетей
Или с помощью нашего сайта
Зарегистрироваться Войти
Обратная связь

Обратная связь

Функция удаления ненужных символов в тексте

В большинстве случаев, когда надо экранировать или удалять опасные символы, в php есть готовые решения. Например  htmlspecialchars преобразует символы в их HTML сущность. Проше говоря экранирует.  

Strip_tags удаляет HTML и PHP теги из строки.  

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

Вот для таких целей мы и будем создавать маленькую функцию. А заодно заменим пробел на тире. 

  

	$array = array('~','@','#','%','^','&','*','`',';','"','\'','/',':',';','|','?','<','>','.');
  
      $letters = preg_split('//u', $text, -1, PREG_SPLIT_NO_EMPTY);
      
	  $conclusion = array_diff($letters,$array); 
	  
	  $data = implode($conclusion);
      
	 echo preg_replace('/ /u', '-', $data);

 

Теперь разберемся что тут происходит

В переменную $array мы собираем массив из тех символов, которые надо удалить. 

Переменная $text содержит исходный текст. 

Далее с помощью функции preg_split и регулярного выражения разбиваем текст на отдельные символы. 

Функция array_diff вычисляет расхождения в массиве $letters и $array  Особенность этой функции в том, что она выводи только те символы, которые не встречаются в массиве $array. Этим и воспользуемся 

Далее с помощью implode переводим массив в строку. 

И если необходимо пробел заменить на что-то другое, то используем preg_replace. Если в этом нет необходимости, то выводим переменную $data 

Попробуйте ввести строку с символами которые указаны ниже, и вы увидите работу скрипта  
Удаляем ненужные символы   ~   @   #'   %   ^   &   *   \   ?   <    >  и заменяем пробел на дефис -

 

 

🔥
0
🚀
0
0
👎
0
Новое на сайте